1

だから私はCamel-GAEコンポーネントをブラッシュアップしています.私が見つけたすべてのチュートリアル/コードサンプルは、CamelをGAEで実行するにはSpring DSL (XML)を使用する必要があることを示しているようです.

これは、Camel-GAEに依存しているためであり、 を構成するためにCamel-Servlet見つけた唯一のコード サンプルは次のとおりです。CamelServletweb.xml

<web-app>
    <servlet>
        <servlet-name>CamelServlet</servlet-name>
        <display-name>Camel Http Transport Servlet</display-name>
        <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>appctx.xml</param-value>
        </init-param>
    </servlet>

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

私はSpringの大ファンというわけではなく、すべてのDIをGINやGuiceなどで行うことを好みます。Camel Servlet を作成し、 Spring を使用せずに定義する方法はありますか? CamelContext前もって感謝します。

更新- GAE で JNDI レジストリを使用すると発生するエラー:

java.lang.NoClassDefFoundError: javax.naming.InitialContext is a restricted class. Please see the Google  App Engine developer's guide for more details.
    at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
    at org.apache.camel.impl.JndiRegistry.createContext(JndiRegistry.java:103)
    at org.apache.camel.impl.JndiRegistry.getContext(JndiRegistry.java:92)
    at org.apache.camel.impl.JndiRegistry.lookup(JndiRegistry.java:65)
    at org.apache.camel.impl.JndiRegistry.lookup(JndiRegistry.java:47)
    at org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookup(PropertyPlaceholderDelegateRegistry.java:62)
    at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1557)
    at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1444)
    at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60)
    at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1412)
    at com.ourapp.server.servlets.CamelServlet.doGet(Unknown Source)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
4

1 に答える 1

1

web.xml ファイルでは、Spring を使用する必要はありません。したがって、そこから依存関係の要件はありません。camel-gae が作成されたとき、サンプルとチュートリアルは Web アプリケーションでした。そのため、Spring コンテキスト リスナーを使用して Camel をブートストラップする方が簡単だったと思います。これはもう必要ありません: http://camel.apache.org/servlet-tomcat-no-spring-example.html

これを調査する必要があると思い、チケットを記録しました: https://issues.apache.org/jira/browse/CAMEL-6030

camel-gae をアップグレードして新しい GAE バージョンを使用しているときに、Spring の依存関係に気付きました。

于 2013-02-02T11:59:26.373 に答える