JAX-RPC Endpoint Valid Type Return
gigsvoo May 14, 2006 9:44 PMHi 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!