1 Reply Latest reply on Nov 11, 2010 7:12 AM by sgingade

    JAX-RPC Endpoint Valid Type Return

    gigsvoo

      Hi there,

      I had done deployment for JAX-RPC on JBoss server and I found the following funny error:

      2006-05-11 17:49:29,953 DEBUG [org.jboss.deployment.MainDeployer] Done with create step of deploying commons-logging-1.0.4.jar
      2006-05-11 17:49:29,953 DEBUG [org.jboss.deployment.MainDeployer] create step for deployment file:/C:/java/jboss-4.0.3SP1/server/default/deploy/ems.ear/core.jar/
      2006-05-11 17:49:29,953 DEBUG [org.jboss.ejb.EJBDeployer] create, core.jar
      2006-05-11 17:49:30,062 DEBUG [org.jboss.ejb.EJBDeployer] Verifying file:/C:/java/jboss-4.0.3SP1/server/default/deploy/ems.ear/core.jar/
      2006-05-11 17:49:30,140 WARN [org.jboss.ejb.EJBDeployer.verifier] EJB spec violation:
      Bean : PersistenceEJB
      Method : public abstract boolean isIdentical(EJBObject) throws RemoteException
      Section: 7.11.9
      Warning: The methods defined in the service endpoint interface must have arguments of valid types for JAX-RPC.
      
      2006-05-11 17:49:30,156 WARN [org.jboss.ejb.EJBDeployer.verifier] EJB spec violation:
      Bean : PersistenceEJB
      Method : public abstract EJBHome getEJBHome() throws RemoteException
      Section: 7.11.9
      Warning: The methods defined in the service endpoint interface must have a return of a valid type for JAX-RPC.
      
      2006-05-11 17:49:30,156 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.parentTraceEnabled=true
      2006-05-11 17:49:30,156 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.nestedTraceEnabled=false
      2006-05-11 17:49:30,156 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.detectDuplicateNesting=true
      2006-05-11 17:49:30,156 ERROR [org.jboss.deployment.MainDeployer] Could not create deployment: file:/C:/java/jboss-4.0.3SP1/server/default/deploy/ems.ear/core.jar/
      org.jboss.deployment.DeploymentException: Verification of Enterprise Beans failed, see above for error messages.
       at org.jboss.ejb.EJBDeployer.create(EJBDeployer.java:575)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
       at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:118)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
       at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:127)
       at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:80)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
       at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)


      and the configuration files are as following:

      1. ejb-jar.xml

      <session>
       <display-name>PersistenceJAR</display-name>
       <ejb-name>PersistenceEJB</ejb-name>
       <service-endpoint>gov.mohr.ems.core.entity.logic.PersistenceRemote</service-endpoint>
       <!--<home>gov.mohr.ems.core.entity.logic.PersistenceRemoteHome</home>
       <remote>gov.mohr.ems.core.entity.logic.PersistenceRemote</remote>-->
       <ejb-class>gov.mohr.ems.core.entity.logic.PersistenceBean</ejb-class>
       <session-type>Stateless</session-type>
       <transaction-type>Container</transaction-type>
       <env-entry>
       <env-entry-name>ejb/BeanFactoryPath</env-entry-name>
       <env-entry-type>java.lang.String</env-entry-type>
       <env-entry-value>/META-INF/applicationcontext-ejb</env-entry-value>
       </env-entry>
       </session>
      
      


      2. mapping.xml

      <?xml version="1.0" encoding="UTF-8"?>
      
      <!--
       Document : mapping.xml
       Created on : May 11, 2006, 5:13 PM
       Author : david
       Description:
       Web Services Mapping Configuration
      -->
      
      <java-wsdl-mapping version="1.1" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd">
       <package-mapping>
       <package-type>gov.mohr.ems.core.entity.logic</package-type>
       <namespaceURI>http://localhost:8080/types</namespaceURI>
       </package-mapping>
       <package-mapping>
       <package-type>gov.mohr.ems.core.entity.logic</package-type>
       <namespaceURI>http://localhost:8080/</namespaceURI>
       </package-mapping>
       <service-interface-mapping>
       <service-interface>gov.mohr.ems.core.entity.logic.PersistenceRemote</service-interface>
       <wsdl-service-name xmlns:serviceNS="http://localhost:8080/">serviceNS:Persistence</wsdl-service-name>
       <port-mapping>
       <port-name>PersistencePort</port-name>
       <java-port-name>PersistencePort</java-port-name>
       </port-mapping>
       </service-interface-mapping>
       <service-endpoint-interface-mapping>
       <service-endpoint-interface>gov.mohr.ems.core.entity.logic.PersistenceRemote</service-endpoint-interface>
       <wsdl-port-type xmlns:portTypeNS="http://localhost:8080/">portTypeNS:Persistence</wsdl-port-type>
       <wsdl-binding xmlns:bindingNS="http://localhost:8080/">bindingNS:PersistenceBinding</wsdl-binding>
       <service-endpoint-method-mapping>
       <java-method-name>upload</java-method-name>
       <wsdl-operation>upload</wsdl-operation>
       <method-param-parts-mapping>
       <param-position>0</param-position>
       <param-type>java.lang.String</param-type>
       <wsdl-message-mapping>
       <wsdl-message xmlns:wsdlMsgNS="http://localhost:8080/">wsdlMsgNS:Persistence_upload</wsdl-message>
       <wsdl-message-part-name>String_1</wsdl-message-part-name>
       <parameter-mode>IN</parameter-mode>
       </wsdl-message-mapping>
       </method-param-parts-mapping>
       <wsdl-return-value-mapping>
       <method-return-value>java.lang.String</method-return-value>
       <wsdl-message xmlns:wsdlMsgNS="http://localhost:8080/">wsdlMsgNS:Persistence_uploadResponse</wsdl-message>
       <wsdl-message-part-name>result</wsdl-message-part-name>
       </wsdl-return-value-mapping>
       </service-endpoint-method-mapping>
       </service-endpoint-interface-mapping>
      </java-wsdl-mapping>
      
      


      3. WSDL file

      <?xml version="1.0" encoding="UTF-8"?>
      
      <definitions name="PersistenceService" targetNamespace="http://age.webservices.javasrc.com/" xmlns:tns="http://age.webservices.javasrc.com/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
       <types/>
       <message name="Persistence_upload">
       <part name="String_1" type="xsd:string"/>
       </message>
       <message name="Persistence_uploadResponse">
       <part name="result" type="xsd:string"/>
       </message>
       <portType name="Persistence">
       <operation name="upload" parameterOrder="String_1">
       <input message="tns:Persistence_upload"/>
       <output message="tns:Persistence_uploadResponse"/>
       </operation>
       </portType>
       <binding name="PersistenceBinding" type="tns:Persistence">
       <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
       <operation name="upload">
       <soap:operation soapAction=""/>
       <input>
       <soap:body use="literal" namespace="http://localhost:8080/"/>
       </input>
       <output>
       <soap:body use="literal" namespace="http://localhost:8080/"/>
       </output>
       </operation>
       </binding>
       <service name="PersistenceService">
       <port name="PersistencePort" binding="tns:PersistenceBinding">
       <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
       </port>
       </service>
      </definitions>


      4. webservices.xml

      <?xml version="1.0" encoding="UTF-8"?>
      
      <!--
       Document : webservices.xml
       Created on : May 11, 2006, 5:36 PM
       Author : david
       Description:
       Web Services Configuration File for EJB Container
      -->
      
      <webservices xmlns="http://java.sun.com/xml/ns/j2ee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1\.xsd" version="1.1">
       <webservice-description>
       <webservice-description-name>PersistenceService</webservice-description-name>
      
       <wsdl-file>META-INF/wsdl/Persistence.wsdl</wsdl-file>
       <jaxrpc-mapping-file>META-INF/mapping.xml</jaxrpc-mapping-file>
      
       <port-component>
       <port-component-name>Persistence</port-component-name>
       <wsdl-port>PersistencePort</wsdl-port>
       <service-endpoint-interface>gov.mohr.ems.core.entity.logic.PersistenceRemote</service-endpoint-interface>
       <service-impl-bean>
       <ejb-link>PersistenceEJB</ejb-link>
       </service-impl-bean>
       </port-component>
       </webservice-description>
      </webservices>


      Could anyone please help to validate whats wrong with my deployment?

      Many thanks!