0 Replies Latest reply on Aug 14, 2008 2:53 PM by Ritesh Patel

    JBoss fails with

    Ritesh Patel Newbie

      I'm trying to deploy a simple HelloWorld service on JBoss but I keep getting "cannot find endpoint meta data" error.
      This and other services deploy just fine over GlassFish and WebLogic. I've looked every where and exhausted every means to find an answer, this is last hope. Please help!!!

      Here's the error:

      10:22:04,883 INFO [TomcatDeployer] deploy, ctxPath=/HelloWorldService, warUrl=.../tmp/deploy/tmp574
      20HelloWorldService-exp.war/
      10:22:04,935 INFO [WebappClassLoader] validateJarFile(/opt/wfnp/jboss-4.2.3.GA/server/default/./tmp
      /deploy/tmp57420HelloWorldService-exp.war/WEB-INF/lib/servlet-api-2.3.jar) - jar not loaded. See Ser
      vlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
      10:22:05,205 ERROR [MainDeployer] Could not start deployment: file:/opt/wfnp/jboss-4.2.3.GA/server/d
      efault/deploy/HelloWorldService.war
      java.lang.IllegalStateException: Cannot find endpoint meta data for: HelloWorldService
       at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.getEndpointMetaData(UnifiedMetaDataDepl
      oymentAspect.java:118)
       at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.j
      ava:87)
       at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.start(DeploymentAspectManagerImpl
      .java:146)
       at org.jboss.wsf.container.jboss42.LazyAssemblyWSFRuntime.start(LazyAssemblyWSFRuntime.java:66)
       at org.jboss.wsf.container.jboss42.JAXWSDeployerHookPostJSE.deploy(JAXWSDeployerHookPostJSE.java:52
      )
       at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:90)
       at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerIntercepto
      rSupport.java:188)
       at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
       at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
       at $Proxy45.start(Unknown Source)
       :
       :
      




      Here's my java class, web.xml, and the WSDL file

      package com.my.services.helloworld;
      
      import javax.jws.WebMethod;
      import javax.jws.WebService;
      
      @WebService(endpointInterface = "com.my.services.helloworld.HelloWorldPortType",
       portName = "HelloWorldPort",
       serviceName = "HelloWorldService",
       targetNamespace = "http://services.my.com/helloworld",
       wsdlLocation = "WEB-INF/wsdl/HelloWorldService.wsdl")
      public class HelloWorldServiceImpl implements HelloWorldPortType
      {
       public String helloWorld(String name) throws ServiceExceptionMessage
       {
       try
       {
       return ("Hello there, " + name);
       }
       catch (Exception ex)
       {
       ServiceFault sf = new ServiceFault();
       sf.setErrorMessage(ex.getMessage());
       throw new ServiceExceptionMessage("Error Saying Hello", sf, ex);
       }
       }
      }
      



      web.xml
      <web-app 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" version="2.5">
       <servlet>
       <servlet-name>HelloWorldService</servlet-name>
       <servlet-class>com.my.services.helloworld.HelloWorldServiceImpl</servlet-class>
       </servlet>
       <servlet-mapping>
       <servlet-name>HelloWorldService</servlet-name>
       <url-pattern>/HelloWorldService</url-pattern>
       </servlet-mapping>
       <session-config>
       <session-timeout>30</session-timeout>
       </session-config>
      </web-app>
      




      sun-jaxws.xml
      <?xml version="1.0" encoding="UTF-8"?>
      <endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
       <endpoint name="HelloWorldService"
       implementation="com.my.services.helloworld.HelloWorldServiceImpl"
       wsdl="WEB-INF/wsdl/HelloWorldService.wsdl"
       service="{http://services.my.com/helloworld}HelloWorldService"
       port="{http://services.my.com/helloworld}HelloWorldPort"
       url-pattern="/HelloWorldService"/>
      </endpoints>
      




      HelloWorldService.wsdl
      <?xml version="1.0" encoding="UTF-8"?>
      <definitions
       name="HelloWorldService"
       targetNamespace="http://services.my.com/helloworld"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
       xmlns:tns="http://services.my.com/helloworld"
       xmlns="http://schemas.xmlsoap.org/wsdl/">
       <types>
       <schema xmlns="http://www.w3.org/2001/XMLSchema"
       elementFormDefault="qualified"
       xmlns:tns="http://services.my.com/helloworld"
       targetNamespace="http://services.my.com/helloworld">
       <xsd:element name="helloWorld">
       <complexType>
       <xsd:sequence>
       <xsd:element name="name" type="xsd:string"/>
       </xsd:sequence>
       </complexType>
       </xsd:element>
       <xsd:element name="helloWorldResponse">
       <xsd:complexType>
       <xsd:sequence>
       <xsd:element name="return" type="xsd:string"/>
       </xsd:sequence>
       </xsd:complexType>
       </xsd:element>
       <xsd:element name="ServiceFault">
       <xsd:complexType>
       <xsd:sequence>
       <xsd:element name="errorMessage" nillable="false" type="xsd:string"/>
       </xsd:sequence>
       </xsd:complexType>
       </xsd:element>
       </schema>
       </types>
       <message name="helloWorldRequest">
       <part element="tns:helloWorld" name="parameters"/>
       </message>
       <message name="helloWorldResponse">
       <part element="tns:helloWorldResponse" name="parameters"/>
       </message>
       <message name="ServiceExceptionMessage">
       <part element="tns:ServiceFault" name="fault"/>
       </message>
       <portType name="HelloWorldPortType">
       <operation name="helloWorld">
       <input message="tns:helloWorldRequest" name="helloWorldRequest"/>
       <output message="tns:helloWorldResponse" name="helloWorldResponse"/>
       <fault message="tns:ServiceExceptionMessage" name="ServiceException"/>
       </operation>
       </portType>
       <binding name="HelloWorldPortBinding" type="tns:HelloWorldPortType">
       <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
       <operation name="helloWorld">
       <soap:operation soapAction=""/>
       <input name="helloWorldRequest">
       <soap:body use="literal"/>
       </input>
       <output name="helloWorldResponse">
       <soap:body use="literal"/>
       </output>
       <fault name="ServiceException">
       <soap:fault name="ServiceException" use="literal"/>
       </fault>
       </operation>
       </binding>
       <service name="HelloWorldService">
       <port binding="tns:HelloWorldPortBinding" name="HelloWorldPort">
       <soap:address location="http://localhost:8080/helloworld/HelloWorldService"/>
       </port>
       </service>
      </definitions>
      




      I don't know what am i doing wrong, the war file deploys on GlassFish and I'm able to get use the service using SaopUI, but can't deploy on JBoss.