camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: How to import camel in a java application program
Date Mon, 11 Jan 2010 03:12:17 GMT
If you are using camel-core-2.1.0.jar and camel-spring 2.1.0.jar, using 
camel-http-2.1.0.jar should be OK.

BTW, I assume you don't deploy these jar to an OSGi container.

Willem

ztesoft wrote:
> I put camel-http-2.1.0.jar into my classpath.
> 
> Are there large differences between them?
> 
> 
> 
> willem.jiang wrote:
>> Hi,
>>
>> Did you put org.apache.camel:camel-http:jar:2.2-SNAPSHOT into your 
>> CLASSPATH ?
>>
>> Willem
>>
>> ztesoft wrote:
>>> Dears,
>>>
>>> I tried to get all the jar files mentioned in your reply. Also I found
>>> there
>>> miss a jar file named commons-management-1.0.jar.
>>>
>>> But when I run the program, the error occurs, the error message as
>>> following:
>>> Exception in thread "main" org.apache.camel.FailedToCreateRouteException:
>>> Failed to create route route1: Route[[From[jetty:http://0.0.0.0/8080/]]
>>> ->
>>> [To[file:output]... because of Failed to resolve endpoint:
>>> jetty://http://0.0.0.0/8080/ due to: No component found with scheme:
>>> jetty
>>>         at
>>> org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:141)
>>>         at
>>> org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:601)
>>>         at
>>> org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1156)
>>>         at
>>> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1073)
>>>         at
>>> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1009)
>>>         at
>>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:55)
>>>         at
>>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:884)
>>>         at camelhttp.HttpToFileRoute.main(HttpToFileRoute.java:38)
>>> Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to
>>> resolve endpoint: jetty://http://0.0.0.0/8080/ due to: No component found
>>> with scheme: jetty
>>>         at
>>> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:444)
>>>         at
>>> org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:46)
>>>         at
>>> org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:154)
>>>         at
>>> org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:109)
>>>         at
>>> org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:115)
>>>         at
>>> org.apache.camel.model.FromDefinition.resolveEndpoint(FromDefinition.java:72)
>>>         at
>>> org.apache.camel.impl.DefaultRouteContext.getEndpoint(DefaultRouteContext.java:84)
>>>         at
>>> org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:630)
>>>         at
>>> org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:136)
>>>         ... 7 more
>>> Java Result: 1
>>>
>>> what can I do for this error?
>>>
>>>
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>> On Sat, Jan 9, 2010 at 11:23 AM, ztesoft <njchenyi@hotmail.com> wrote:
>>>>> I wrote the code as following:
>>>>> public class HttpToFileRoute {
>>>>>
>>>>>    public static void main(String args[]) throws Exception {
>>>>>        CamelContext context = new DefaultCamelContext();
>>>>>
>>>>>        context.addRoutes(new RouteBuilder() {
>>>>>
>>>>>            public void configure() {
>>>>>                from("jetty:http://0.0.0.0/8080/").to("file:output");
>>>>>                // set up a listener on the file component
>>>>>                from("file://output").process(new Processor() {
>>>>>
>>>>>                    public void process(Exchange e) {
>>>>>                        System.out.println("Received exchange: " +
>>>>> e.getIn());
>>>>>                    }
>>>>>                });
>>>>>            }
>>>>>        });
>>>>>        context.start();
>>>>>
>>>>>        Thread.sleep(100000);  // I want to let the server works 100000
>>>>> seconds, is it correct?
>>>>>        context.stop();
>>>>>    }
>>>>> }
>>>>>
>>>>> but when I run the program, the error occurs. error message as
>>>>> following:
>>>>> Exception in thread "main" java.lang.NoClassDefFoundError:
>>>>> org/mortbay/jetty/security/SslSocketConnector
>>>>>        at java.lang.Class.getDeclaredConstructors0(Native Method)
>>>>>        at
>>>>> java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
>>>>>        at java.lang.Class.getConstructor0(Class.java:2699)
>>>>>        at java.lang.Class.newInstance0(Class.java:326)
>>>>>        at java.lang.Class.newInstance(Class.java:308)
>>>>>        at
>>>>> org.apache.camel.util.ObjectHelper.newInstance(ObjectHelper.java:958)
>>>>>        at
>>>>> org.apache.camel.util.ReflectionInjector.newInstance(ReflectionInjector.java:32)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultComponentResolver.resolveComponent(DefaultComponentResolver.java:82)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultCamelContext.getComponent(DefaultCamelContext.java:217)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:411)
>>>>>        at
>>>>> org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:46)
>>>>>        at
>>>>> org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:154)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:109)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:115)
>>>>>        at
>>>>> org.apache.camel.model.FromDefinition.resolveEndpoint(FromDefinition.java:72)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultRouteContext.getEndpoint(DefaultRouteContext.java:84)
>>>>>        at
>>>>> org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:630)
>>>>>        at
>>>>> org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:136)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:601)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1156)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1073)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1009)
>>>>>        at
>>>>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:55)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:884)
>>>>>        at
>>>>> org.apache.camel.example.jmstofile.HttpToFileRoute.main(HttpToFileRoute.java:38)
>>>>> Caused by: java.lang.ClassNotFoundException:
>>>>> org.mortbay.jetty.security.SslSocketConnector
>>>>>        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>>>>>        at java.security.AccessController.doPrivileged(Native Method)
>>>>>        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>>>>>        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>>>>>        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>>>>>        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>>>>>        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>>>>>        ... 25 more
>>>>>
>>>>>
>>>>> I know there should be imported some jar files. But which files should
>>>>> I
>>>>> import?
>>>>> Also, is the code correct?
>>>>>
>>>> The code appears correct.
>>>>
>>>> You need many jars (the ones with compile listed) from below.
>>>>
>>>> If you use maven then that is easy as Maven resolves the jars to use.
>>>> Without maven you gotta go hunt for those jars yourself.
>>>>
>>>>
>>>> [INFO]
>>>> ------------------------------------------------------------------------
>>>> [INFO] Building Camel :: Jetty
>>>> [INFO]    task-segment: [dependency:list]
>>>> [INFO]
>>>> ------------------------------------------------------------------------
>>>> [INFO] [dependency:list]
>>>> [INFO]
>>>> [INFO] The following files have been resolved:
>>>> [INFO]    aopalliance:aopalliance:jar:1.0:test
>>>> [INFO]    com.sun.xml.bind:jaxb-impl:jar:2.1.12:compile
>>>> [INFO]    commons-codec:commons-codec:jar:1.2:compile
>>>> [INFO]    commons-httpclient:commons-httpclient:jar:3.1:compile
>>>> [INFO]    commons-logging:commons-logging:jar:1.1.1:compile
>>>> [INFO]    commons-logging:commons-logging-api:jar:1.1:compile
>>>> [INFO]    javax.activation:activation:jar:1.1:compile
>>>> [INFO]    javax.xml.bind:jaxb-api:jar:2.1:compile
>>>> [INFO]    javax.xml.stream:stax-api:jar:1.0-2:compile
>>>> [INFO]    junit:junit:jar:4.4:test
>>>> [INFO]    log4j:log4j:jar:1.2.14:test
>>>> [INFO]    org.apache.camel:camel-core:jar:2.2-SNAPSHOT:compile
>>>> [INFO]    org.apache.camel:camel-http:jar:2.2-SNAPSHOT:compile
>>>> [INFO]    org.apache.camel:camel-spring:jar:2.2-SNAPSHOT:test
>>>> [INFO]    org.apache.camel:camel-test:jar:2.2-SNAPSHOT:test
>>>> [INFO]   
>>>> org.apache.geronimo.specs:geronimo-servlet_2.4_spec:jar:1.1.1:compile
>>>> [INFO]    org.fusesource.commonman:commons-management:jar:1.0:compile
>>>> [INFO]    org.mortbay.jetty:jetty:jar:6.1.19:compile
>>>> [INFO]    org.mortbay.jetty:jetty-client:jar:6.1.19:compile
>>>> [INFO]    org.mortbay.jetty:jetty-sslengine:jar:6.1.19:compile
>>>> [INFO]    org.mortbay.jetty:jetty-util:jar:6.1.19:compile
>>>> [INFO]    org.mortbay.jetty:jetty-util5:jar:6.1.19:compile
>>>> [INFO]    org.mortbay.jetty:servlet-api:jar:2.5-20081211:compile
>>>> [INFO]    org.springframework:spring-aop:jar:2.5.6:test
>>>> [INFO]    org.springframework:spring-beans:jar:2.5.6:test
>>>> [INFO]    org.springframework:spring-context:jar:2.5.6:test
>>>> [INFO]    org.springframework:spring-core:jar:2.5.6:test
>>>> [INFO]    org.springframework:spring-tx:jar:2.5.6:test
>>>>
>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Stephen Gargan wrote:
>>>>>> Yes, adding the camel-jetty dependency and initiializing a route
with
>>>>>>
>>>>>> from("jetty:http://0.0.0.0/8080/").to("file:test")
>>>>>>
>>>>>> will cause camel to stand up a jetty based http server. The content
of
>>>>>> any http request sent to '/' on the server will be written to the
file
>>>>>> 'test'
>>>>>>
>>>>>>
>>>>>> On Fri, Jan 8, 2010 at 11:34 PM, ztesoft <njchenyi@hotmail.com>
wrote:
>>>>>>> Does it mean I should use jetty for HTTP server?
>>>>>>>
>>>>>>>
>>>>>>> Stephen Gargan wrote:
>>>>>>>> Take a look at the jms-to-file from the examples
>>>>>>>>
>>>>>>>> http://svn.apache.org/repos/asf/camel/trunk/examples/camel-example-jms-file/
>>>>>>>>
>>>>>>>> Look at the JmsToFileRoute; You'll be using a jetty http
endpoint in
>>>>>>>> place of the jms one e.g.
>>>>>>>>
>>>>>>>> from("jetty:http://0.0.0.0/8080/").to("file:test")
>>>>>>>>
>>>>>>>> Remember, you'll need to include the camel-jetty dependency
so add
>>>>>>>> this to your pom.
>>>>>>>>
>>>>>>>> Give it a try.
>>>>>>>>
>>>>>>>> ste
>>>>>>>>
>>>>>>>> On Fri, Jan 8, 2010 at 10:28 PM, ztesoft <njchenyi@hotmail.com>
>>>>>>>> wrote:
>>>>>>>>> I write a java application program to achieve a HTTP
server. Camel
>>>>>>>>> is
>>>>>>>>> used in
>>>>>>>>> this program to receive the http requests and transfer
them to a
>>>>>>>>> file.
>>>>>>>>>
>>>>>>>>> Does anyone suggest me how to do this?
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>>> http://old.nabble.com/How-to-import-camel-in-a-java-application-program-tp27085959p27085959.html
>>>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>>>
>>>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://old.nabble.com/How-to-import-camel-in-a-java-HTTP-server-application-program-tp27085959p27086149.html
>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/How-to-import-camel-in-a-java-HTTP-server-application-program-tp27085959p27087072.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>> -- 
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>
>>
> 


Mime
View raw message