Sam,
myService variable must not be static (that's only allowed in
application client).
Jarek
On Dec 12, 2007 12:25 PM, Sam Merrell <[EMAIL PROTECTED]> wrote:
> I have been looking everywhere and can't find much information on how
> resource injection works for JAX-WS 2.0 web services. Any pointers in the
> right direction on how to use the @WebServiceRef or @Resource annotation
> would be great.
>
> I have a Java client that I'm trying to get resource injection for but I
> keep getting a NullPointerException.
>
> Here is the client:
>
> package aTest.client;
>
> import java.io.IOException;
>
> import javax.servlet.Servlet;
> import javax.servlet.ServletException;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> import javax.xml.ws.WebServiceRef ;
>
> import aTest.service.EJBHelloService;
> import aTest.service.EJBHello;
>
> /**
> * @author samerrel
> *
> */
> public class TestEJBHello extends HttpServlet implements Servlet {
>
> @WebServiceRef( wsdlLocation = "
> http://localhost:8080/EJBHello/EJBHelloService?wsdl" )
> static EJBHelloService myService;
>
> public TestEJBHello() {
> super();
> }
>
> @Override
> protected void service( HttpServletRequest req, HttpServletResponse resp
> )
> throws ServletException, IOException {
> System.out.println( "Service Method..." );
> resp.getWriter().println( "Getting EJBHelloPort..." );
> EJBHello port = myService.getEJBHelloPort();
> String msg = port.sayHello( "Sam" );
> System.out.println( msg );
> resp.getWriter().println( msg );
> }
> }
> ---------------------------------------------
>
> Here is the stack trace:
>
> java.lang.NullPointerException
> at aTest.client.TestEJBHello.service (TestEJBHello.java:50)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:290)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:206)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
> alve.java:230)
> at org.apache.catalina.core.StandardContextValve.invoke
> (StandardContextV
> alve.java:175)
> at
> org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSu
> bjectValve.java:56)
> at
> org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve .
> invoke(GeronimoStandardContext.java:353)
> at
> org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(Gero
> nimoBeforeAfterValve.java:47)
> at org.apache.catalina.core.StandardHostValve.invoke
> (StandardHostValve.j
> ava:128)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
> ava:104)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
> ve.java :109)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
> 563)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
> a:261)
> at org.apache.coyote.http11.Http11Processor.process
> (Http11Processor.java
> :844)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
> ss(Http11Protocol.java:581)
> at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java :44
> 7)
> at java.lang.Thread.run(Thread.java:801)
>
> When I check my code, the myService variable is always null, so the resource
> is not being injected before I try to get the port. When I checked the
> repository in geronimo, it looks like the generated web.xml does not include
> the proper <service-ref> elements inside it but I can't figure out why they
> aren't being generated. Thanks in advance for the help.
>
> --
> Sam Merrell