Now I try to hit my service and I'm getting an exception

2014-07-03 04:49:58.264:WARN:oejs.AbstractHttpConnection:/basic/test
java.lang.NullPointerException
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:99)
at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:243)
at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:259)
at
org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:65)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1067)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1003)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
at org.eclipse.jetty.server.Server.handle(Server.java:351)
at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
at
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:890)
at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:944)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)
at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:609)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:45)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534)
at java.lang.Thread.run(Thread.java:722)

Here's my service class

@Path("/basic")
@Produces("text/xml")
public class BasicServiceImpl implements BasicService {
@GET
@Path("/test")
public String test()
{
log.debug("Test() WSMethod called!");
return "This is a test rest call";
}

}

The server starts up with this output
Jul 03, 2014 5:24:08 AM org.apache.cxf.endpoint.ServerImpl initDestination
INFO: Setting the server's publish address to be http://localhost:9000/
2014-07-03 05:24:08.279:INFO:oejs.Server:jetty-8.y.z-SNAPSHOT
2014-07-03 05:24:08.313:INFO:oejs.AbstractConnector:Started
SelectChannelConnector@localhost:9000
2014-07-03 05:24:08,328 INFO [com.crush.tests.service.Test] - Started Basic
Web Service!

I'm trying to make the request via wget
wget http://localhost:9000/basic/test
--2014-07-03 05:13:11--  http://localhost:9000/basic/test
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:9000... connected.
HTTP request sent, awaiting response... 500 Server Error
2014-07-03 05:13:11 ERROR 500: Server Error.

Am I missing something?


On Mon, Jun 30, 2014 at 6:31 AM, Chris Bud <[email protected]>
wrote:

> I only copied the source from the demo, I put it into my own project and
> added the maven assembly plugin so all my dependencies were bundled into a
> single jar.
>
>
> On Mon, Jun 30, 2014 at 6:14 AM, Sergey Beryozkin <[email protected]>
> wrote:
>
>> Hi
>>
>> On 30/06/14 11:08, Chris Bud wrote:
>>
>>> Thanks Sergey, I was able to start the server with both transports-http
>>> and
>>> transports-http-jetty on the classpath.. What I don't understand is why
>>> this works but with those bundled into a single jar it does not.
>>>
>>>  The demo build produces a jar with the demo classes only.
>>
>> Cheers, Sergey
>>
>>>
>>> On Mon, Jun 30, 2014 at 5:56 AM, Sergey Beryozkin <[email protected]>
>>> wrote:
>>>
>>>  Sorry, I was wrong, it is a jar after all. The demo is not meant to be
>>>> deployed into the container, and a such having a CXF http-jetty
>>>> transport
>>>> Maven dependency is sufficient.
>>>> You can't have it run from java directly, actually you probably can if
>>>> you
>>>> update a classpath to reference a cxf-rt-transport-http-jetty jar
>>>> shipped
>>>> in the distribution.
>>>>
>>>> Cheers, Sergey
>>>>
>>>>
>>>>
>>>> On 30/06/14 10:49, Chris Bud wrote:
>>>>
>>>>  Hi Sergey,
>>>>>
>>>>> Thanks for the link I tried to implement but still produces the same
>>>>> error.
>>>>>
>>>>>
>>>>> java -cp target/sample-service-1.0-jar-with-dependencies.jar
>>>>> com.crush.tests.service.Test
>>>>> Exception in thread "main"
>>>>> org.apache.cxf.service.factory.ServiceConstructionException
>>>>> at
>>>>> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(
>>>>> JAXRSServerFactoryBean.java:205)
>>>>> at com.crush.tests.service.Test.<init>(Test.java:27)
>>>>> at com.crush.tests.service.Test.main(Test.java:32)
>>>>> Caused by: org.apache.cxf.BusException: No DestinationFactory was found
>>>>> for
>>>>> the namespace http://cxf.apache.org/transports/http.
>>>>> at
>>>>> org.apache.cxf.bus.managers.DestinationFactoryManagerImpl.
>>>>> getDestinationFactory(DestinationFactoryManagerImpl.java:130)
>>>>> at org.apache.cxf.endpoint.ServerImpl.initDestination(
>>>>> ServerImpl.java:78)
>>>>> at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:62)
>>>>> at
>>>>> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(
>>>>> JAXRSServerFactoryBean.java:159)
>>>>> ... 2 more
>>>>>
>>>>> My Test source
>>>>> public class Test
>>>>> {
>>>>>
>>>>> protected Test() throws Exception
>>>>> {
>>>>> JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
>>>>>           sf.setResourceClasses(SampleServiceImpl.class);
>>>>>           sf.setResourceProvider(SampleServiceImpl.class,
>>>>>               new SingletonResourceProvider(new SampleServiceImpl()));
>>>>>           sf.setAddress("http://localhost:9000/";);
>>>>>
>>>>> BindingFactoryManager manager =
>>>>> sf.getBus().getExtension(BindingFactoryManager.class);
>>>>> JAXRSBindingFactory factory = new JAXRSBindingFactory();
>>>>> factory.setBus(sf.getBus());
>>>>> manager.registerBindingFactory(JAXRSBindingFactory.JAXRS_BINDING_ID,
>>>>> factory);
>>>>>
>>>>>
>>>>>           sf.create();
>>>>> }
>>>>>
>>>>> public static void main(String[] args) throws Exception
>>>>> {
>>>>> new Test();
>>>>> System.out.println("Server ready...");
>>>>> Thread.sleep(5 * 6000 * 1000);
>>>>>           System.out.println("Server exiting");
>>>>>           System.exit(0);
>>>>>
>>>>> }
>>>>> }
>>>>>
>>>>> Any other thoughts?
>>>>>
>>>>>
>>>>> On Fri, Jun 27, 2014 at 5:07 PM, Sergey Beryozkin <
>>>>> [email protected]>
>>>>> wrote:
>>>>>
>>>>>   Hi
>>>>>
>>>>>>
>>>>>> On 27/06/14 17:51, Chris Bud wrote:
>>>>>>
>>>>>>   Hi All,
>>>>>>
>>>>>>>
>>>>>>> I'm trying to build a basic jax-rs example using version 2.7.11.
>>>>>>>  Using
>>>>>>> the
>>>>>>> server and service code from the example code
>>>>>>> <http://svn.apache.org/viewvc/cxf/trunk/distribution/src/
>>>>>>> main/release/samples/jax_rs/basic/>,
>>>>>>>
>>>>>>> I can build and run it just like the readme instructions say (mvn
>>>>>>> -Pserver)
>>>>>>> but if I produce a jar bundled with the dependencies and run from the
>>>>>>> command line I cannot get the server to start.  I get the following
>>>>>>> exception
>>>>>>>
>>>>>>> test-service/target$ java -cp test-service-1.0-jar-with-
>>>>>>> dependencies.jar
>>>>>>> com.test.Server
>>>>>>> Exception in thread "main"
>>>>>>> org.apache.cxf.service.factory.ServiceConstructionException
>>>>>>> at
>>>>>>> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(
>>>>>>> JAXRSServerFactoryBean.java:190)
>>>>>>> at com.test.Server.<init>(Server.java:24)
>>>>>>> at com.test.Server.main(Server.java:29)
>>>>>>> Caused by: org.apache.cxf.BusException: No DestinationFactory was
>>>>>>> found
>>>>>>> for
>>>>>>> the namespace http://cxf.apache.org/transports/http.
>>>>>>> at
>>>>>>> org.apache.cxf.bus.managers.DestinationFactoryManagerImpl.
>>>>>>> getDestinationFactory(DestinationFactoryManagerImpl.java:130)
>>>>>>> at org.apache.cxf.endpoint.ServerImpl.initDestination(
>>>>>>> ServerImpl.java:78)
>>>>>>> at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:62)
>>>>>>> at
>>>>>>> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(
>>>>>>> JAXRSServerFactoryBean.java:151)
>>>>>>> ... 2 more
>>>>>>>
>>>>>>> Can anyone point me in the right direction?
>>>>>>>
>>>>>>>    It appears that when running a packaged Jetty based demo the
>>>>>>> following
>>>>>>>
>>>>>>>  has to be done:
>>>>>>
>>>>>> http://cxf.apache.org/docs/jaxrs-services-configuration.html#
>>>>>> JAXRSServicesConfiguration-ConfiguringJAX-
>>>>>> RSendpointsprogrammaticallywit
>>>>>> houtSpring
>>>>>>
>>>>>> Please see the lines related to registering binding id/factory
>>>>>>
>>>>>> Can you please update Server accordingly, recompile and retry ?
>>>>>>
>>>>>> Cheers, Sergey
>>>>>>
>>>>>>    Thanks,
>>>>>>
>>>>>>  Chris
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>> Sergey Beryozkin
>>>>>>
>>>>>> Talend Community Coders
>>>>>> http://coders.talend.com/
>>>>>>
>>>>>> Blog: http://sberyozkin.blogspot.com
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>> --
>>>> Sergey Beryozkin
>>>>
>>>> Talend Community Coders
>>>> http://coders.talend.com/
>>>>
>>>> Blog: http://sberyozkin.blogspot.com
>>>>
>>>>
>>>
>>
>> --
>> Sergey Beryozkin
>>
>> Talend Community Coders
>> http://coders.talend.com/
>>
>> Blog: http://sberyozkin.blogspot.com
>>
>
>

Reply via email to