Proxy 将CORSHandler添加到camel jetty组件

Proxy 将CORSHandler添加到camel jetty组件,proxy,cors,apache-camel,jetty,javabeans,Proxy,Cors,Apache Camel,Jetty,Javabeans,我需要将以下CORSHandler添加到camel jetty组件中 public class CORSHandler extends AbstractHandler { @Override public void handle(String arg0, Request arg1, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletExc

我需要将以下CORSHandler添加到camel jetty组件中

public class CORSHandler extends AbstractHandler
{
    @Override
    public void handle(String arg0, Request arg1, HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {
        System.out.println("GOT REQUEST!!!!!!!");
        if(request.getMethod().equals("OPTIONS")){
            System.out.println("CORSFilter HTTP Request BS: " + request.getMethod());

            // Authorize (allow) all domains to consume the content
            response.addHeader("Access-Control-Allow-Origin", "*");
            response.addHeader("Access-Control-Allow-Methods","GET, OPTIONS, HEAD, PUT, POST");
            response.addHeader("Access-Control-Allow-Headers","Authorization");
            // For HTTP OPTIONS verb/method reply with ACCEPTED status code -- per CORS handshake
            if (request.getMethod().equals("OPTIONS")) {
                response.setStatus(HttpServletResponse.SC_ACCEPTED);
                arg1.setHandled(true);
            }           
        }
    }
 }
我试着用下面的方法

from("jetty:http://0.0.0.0:8082/proxy?disableStreamCache=true&matchOnUriPrefix=true&enableMultipartFilter=false&handlers=#corsHandler")
.to("jetty:http://localhost:8085/myWebApp/foo?bridgeEndpoint=true&throwExceptionOnFailure=false&traceEnabled=true")
.to("log:MyLogger?level=INFO&showAll=true");
以下是我的camel-context.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:camel="http://camel.apache.org/schema/spring"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
    <bean class="com.abccom.route.CloudServiceRoute" id="cloudServiceRoute"/>
    <bean class="com.abccom.CORSHandler" id="corsHandler"/>
    <camelContext id="esbConsoleCamelContext" xmlns="http://camel.apache.org/schema/spring">
        <routeBuilder ref="cloudServiceRoute"/>
    </camelContext>
</beans>
关于如何为camel jetty组件配置CORSHandler的任何信息

下面是我的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.abccom</groupId>
    <artifactId>console-service-esb</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>

    <name>WildFly Camel CDI Application</name>
    <url>http://www.myorganization.org</url>

    <!-- Properties -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <!-- WildFly versions -->
        <version.wildfly>10.1.0.Final</version.wildfly>

        <!-- Other versions -->
        <version.apache.camel>2.19.3</version.apache.camel>
        <version.junit>4.12</version.junit>

        <!-- Plugin versions -->
        <version.maven.compiler.plugin>3.1</version.maven.compiler.plugin>
        <version.maven.surefire.plugin>2.18.1</version.maven.surefire.plugin>
        <version.maven.war.plugin>3.0.0</version.maven.war.plugin>
        <version.wildfly.maven.plugin>1.2.0.Final</version.wildfly.maven.plugin>

        <!-- maven-compiler-plugin -->
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>

        <!-- Arquillian application server properties -->
        <jboss.home>${env.JBOSS_HOME}</jboss.home>
        <server.config>standalone-camel.xml</server.config>
    </properties>

    <!-- DependencyManagement -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.wildfly.camel</groupId>
                <artifactId>wildfly-camel-bom</artifactId>
                <version>4.9.0</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- Dependencies -->
    <dependencies>
        <!-- Provided -->
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-cdi</artifactId>
            <version>${version.apache.camel}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-restlet</artifactId>
            <version>${version.apache.camel}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-jetty</artifactId>
            <version>${version.apache.camel}</version>
        </dependency>
        <dependency>
            <groupId>javax.enterprise</groupId>
            <artifactId>cdi-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.ejb</groupId>
            <artifactId>jboss-ejb-api_3.2_spec</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.servlet</groupId>
            <artifactId>jboss-servlet-api_3.1_spec</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.ws.rs</groupId>
            <artifactId>jboss-jaxrs-api_1.1_spec</artifactId>
            <version>1.0.1.Final</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-git</artifactId>
            <version>${version.apache.camel}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-jasypt</artifactId>
            <version>${version.apache.camel}</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.0</version>
        </dependency>

        <!-- Test -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${version.junit}</version>
            <scope>test</scope>
        </dependency>

                <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.5</version>
        </dependency>

                <!--HTTP camel component dependency -->

        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-http</artifactId>
            <version>${version.apache.camel}</version>
        </dependency>


    </dependencies>

    <!-- Build-->
    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${version.maven.compiler.plugin}</version>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>${version.maven.war.plugin}</version>
            </plugin>
            <plugin>
                <groupId>org.wildfly.plugins</groupId>
                <artifactId>wildfly-maven-plugin</artifactId>
                <version>${version.wildfly.maven.plugin}</version>
                <configuration>
                    <version>${version.wildfly}</version>
                    <serverConfig>${server.config}</serverConfig>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <!-- Profiles -->
    <profiles>
        <profile>
            <!-- The default profile skips all tests, though you can tune it to run just unit tests based on a custom pattern -->
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>${version.maven.surefire.plugin}</version>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <!-- Repositories -->
    <repositories>
        <repository>
            <id>jboss-public-repository</id>
            <url>http://repository.jboss.org/nexus/content/groups/public/</url>
        </repository>
    </repositories>
</project>

4.0.0
com.abccom
控制台服务esb
1.0.0
战争
WildFly Camel CDI应用程序
http://www.myorganization.org
UTF-8
UTF-8
10.1.0.1最终版本
2.19.3
4.12
3.1
2.18.1
3.0.0
1.2.0.1最终版本
1.8
1.8
${env.JBOSS_HOME}
standalone-camel.xml
org.wildfly.camel
野蝇骆驼
4.9.0
进口
聚甲醛
org.apache.camel
骆驼cdi
${version.apache.camel}
假如
org.apache.camel
骆驼餐厅
${version.apache.camel}
org.apache.camel
骆驼码头
${version.apache.camel}
javax.enterprise
CDIAPI
假如
org.jboss.spec.javax.ejb
jboss-ejb-api_3.2_规范
假如
org.jboss.spec.javax.servlet
jboss-servlet-api_3.1_规范
假如
org.jboss.spec.javax.ws.rs
jboss-jaxrs-api_1.1_规范
1.0.1.最终版本
假如
org.apache.camel
骆驼吉特
${version.apache.camel}
org.apache.camel
骆驼绿
${version.apache.camel}
com.google.code.gson
格森
2.8.0
朱尼特
朱尼特
${version.junit}
测试
com.fasterxml.jackson.core
杰克逊数据绑定
2.9.5
org.apache.camel
骆驼http
${version.apache.camel}
${project.artifactId}
org.apache.maven.plugins
maven编译器插件
${version.maven.compiler.plugin}
${maven.compiler.source}
${maven.compiler.target}
org.apache.maven.plugins
maven战争插件
${version.maven.war.plugin}
org.wildfly.plugins
wildfly maven插件
${version.wildfly.maven.plugin}
${version.wildfly}
${server.config}
违约
真的
maven surefire插件
${version.maven.surefire.plugin}
真的
jboss公共存储库
http://repository.jboss.org/nexus/content/groups/public/
下面是我的web.xml

<web-app>

    <servlet>
        <display-name>Camel Http Transport Servlet</display-name>
        <servlet-name>CamelServlet</servlet-name>
        <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>CamelServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

驼峰Http传输Servlet
骆驼队
org.apache.camel.component.servlet.CamelHttpTransportServlet
1.
骆驼队
/*

您使用什么版本的Camel?我正在使用Camel版本2.19.3如何打包和运行此Camel应用程序,它是WAR文件、Spring Boot还是其他文件?它是WAR文件。我正在Wildfly 10上部署它。您可以尝试在freenode上的widlfy camel IRC聊天室联系Wildfly camel团队
<web-app>

    <servlet>
        <display-name>Camel Http Transport Servlet</display-name>
        <servlet-name>CamelServlet</servlet-name>
        <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>CamelServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>