1 Reply Latest reply on Sep 1, 2010 11:35 AM by Glauber Ribeiro

    Problem with Jax-WS Web service, Java 6 and JBoss 4.3

    Glauber Ribeiro Newbie

      I'm sorry if this has been discussed before. I googled for it and found a few references, but they're old.

       

      I'm fairly new to JBoss. Trying to set up a simple Jax-ws web service undre JBoss AS 4.3 and Java 6. The choice of JBoss and Java version is because i want to match what we have in our production environment, so i'm limited to those versions.

       

      I got it to work first with very basic code, but once i added more meat to the service, including a couple of exceptions, i can't get it to work anymore. When i try to access the service or the WSDL, i get nothing back. server.log contains the following exception:

       

      2010-08-31 17:10:14,507 DEBUG [org.jboss.wsf.stack.jbws.RequestHandlerImpl] handleWSDLRequest: jboss.ws:context=CacheTest,endpoint=GetVehicleInfo
      2010-08-31 17:10:14,507 ERROR [org.jboss.wsf.stack.jbws.RequestHandlerImpl] Error processing web service request
      java.lang.IllegalStateException: Cannot obtain endpoint meta data
      at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleWSDLRequest(RequestHandlerImpl.java:520)
      at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doGet(RequestHandlerImpl.java:144)
      at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:126)
      at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
      at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      at java.lang.Thread.run(Thread.java:619)
      2010-08-31 17:10:14,507 ERROR [org.apache.catalina.core.ContainerBase] Servlet.service() for servlet GetVehicleInfo threw exception
      java.lang.IllegalStateException: Cannot obtain endpoint meta data
      at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleWSDLRequest(RequestHandlerImpl.java:520)
      at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doGet(RequestHandlerImpl.java:144)
      at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:126)
      at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
      at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      at java.lang.Thread.run(Thread.java:619)

       

       

      Here's the definition for the Web Service call:

       

          @WebMethod(operationName = "getInfoFromVin")

          public pojo.Vehicle getInfoFromVin(@WebParam(name = "vin")

          final String vin) throws SQLException, NamingException {

              pojo.Vehicle veh = db.Vehicle.fromVin(vin);

              System.out.println(veh);

              return veh;

          }

       

      I'm trying to keep this very simple... it's not production quality code, but a proof-of-concept app for caching data. At this point it's not caching anything yet, only doing database lookups. Once i get this to work, i'll add caching.

       

      Should i catch those exceptions and throw some other kind, maybe?

       

      The workarounds i was able to find in the Web had to do with copying jar files from the Metro distribution or from other places into lib/endorsed, but they didn't work for me.

       

       

      I'm suspecting that my problem is coming from using Java 6.

      If anyone can help me, i would be very grateful. Please let me know if you need more information.
      Any ideas?
      thank you.
      glauber