1 Reply Latest reply on Oct 1, 2009 3:17 AM by Agraj Mangal

    WSException: Cannot obtain endpoint

    Frode Nilsen Newbie

      Hi,

      I'm having some problems integrating JBossWS 1.2.1 into our webapp using Seam 1.2.1 on Tomcat 5.5.23.

      I downloaded jbossws-1.2.1.GA.zip and copied the jars as specified here http://jbws.dyndns.org/mediawiki/index.php?title=Install_Tomcat into tomcat's common/libs and common/endorsed. I also copied the jbossws.war into tomcat's webapp directory. So far so good, the jbossws webapp is working and I can deploy the samples from jbossws-samples-1.2.1.GA by dragging their wars into jbossws-deploy.

      I then proceeded to try and add a webservice to our already existing web application.

      This is the class I wish to expose as a web service:

      package services;
      
      import javax.jws.WebMethod;
      import javax.jws.WebService;
      import javax.jws.soap.SOAPBinding;
      
      @WebService (name="TestService")
      @SOAPBinding(style = SOAPBinding.Style.RPC)
      public class TestService {
      
       @WebMethod
       public String feedback() {
       return "Hello from ws;
       }
      }


      I've added the following to my web.xml

      <?xml version="1.0" encoding="UTF-8"?>
      
      <web-app version="2.5"
       xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      
       <servlet>
       <servlet-name>TestService</servlet-name>
       <servlet-class>org.jboss.ws.integration.tomcat.TomcatServiceEndpointServlet</servlet-class>
       </servlet>
       <servlet-mapping>
       <servlet-name>TestService</servlet-name>
       <url-pattern>/TestService.ws</url-pattern>
       </servlet-mapping>
      
      </web-app>


      As you can see, I've removed pretty much anything else from web.xml, trying to isolate the problem.

      Now, from what I've seen in the samples, dropping the war into the jbossws-deploy directory causes the jbossws system to modify web.xml and add an ServiceEndpointImpl init-param to each web service servlet. In my case, it should be something like this:

       <init-param>
       <param-name>ServiceEndpointImpl</param-name>
       <param-value>services.TestService</param-value>
       </init-param>


      This doesn't happen.

      When I try to view the service (localhost:8080/MyApp/TestService.ws) it gives me the following exception:

      ERROR org.apache.commons.logging.impl.Log4JLogger (Log4JLogger.java:119) - Servlet.service() for servlet TestService threw exception
      org.jboss.ws.WSException: Cannot obtain endpoint for: jboss.ws:context=MyApp,endpoint=TestService
      at org.jboss.ws.core.server.AbstractServiceEndpointServlet.initServiceEndpoint(AbstractServiceEndpointServlet.java:161)
      at org.jboss.ws.core.server.AbstractServiceEndpointServlet.service(AbstractServiceEndpointServlet.java:73)
      at org.jboss.ws.integration.tomcat.TomcatServiceEndpointServlet.service(TomcatServiceEndpointServlet.java:99)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
      at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
      at java.lang.Thread.run(Thread.java:595)


      This happens also if I add the init-param manually.

      Any ideas what I might be missing here?

      - Frode

        • 1. Re: WSException: Cannot obtain endpoint
          Agraj Mangal Newbie

          Hello,

          I'm facing the same problem when deploying my web service with JBoss4.2.3 and JDK1.5.

          There is no exception when I start the server. But when I try to access the WSDL, it gives me the same exception ?

          Have you found out any solution to this problem ?
          I'm a newbie to this world of web services so please let me know what I'm missing here.

          Best Regards,
          Agraj