Problem with typeMapping when turning an EJB into a WebServi
nycos62 May 2, 2005 4:38 AM*** The Endpoint Interface :
package helloworld.ejb;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface HelloWorldEndpoint extends Remote {
public String getHello(String nom) throws RemoteException;
}
*** the wsdl file :
<?xml version="1.0" encoding="UTF-8"?>
<definitions
name="HelloWorldService"
targetNamespace="urn:HelloWorldService"
xmlns:tns="urn:HelloWorldService"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<xsd:schema targetNamespace="urn:HelloWorldService">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
</xsd:schema>
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
<soap:operation soapAction=""/>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded" namespace="urn:HelloWorldService"/>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded" namespace="urn:HelloWorldService"/>
<soap:address location="REPLACE_WITH_ACTUAL_URL"/>
*** the jaxrpc-mapping file :
<?xml version="1.0" encoding="UTF-8"?>
<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>helloworld.ejb</package-type>
urn:HelloWorldService
</package-mapping>
<service-interface-mapping>
<service-interface>helloworld.ejb.HelloWorldService</service-interface>
<wsdl-service-name xmlns:serviceNS="urn:HelloWorldService">serviceNS:HelloWorldService</wsdl-service-name>
<port-mapping>
<port-name>HelloWorldEndpointPort</port-name>
<java-port-name>HelloWorldEndpointPort</java-port-name>
</port-mapping>
</service-interface-mapping>
<service-endpoint-interface-mapping>
<service-endpoint-interface>helloworld.ejb.HelloWorldEndpoint</service-endpoint-interface>
<wsdl-port-type xmlns:portTypeNS="urn:HelloWorldService">portTypeNS:HelloWorldEndpoint</wsdl-port-type>
<wsdl-binding xmlns:bindingNS="urn:HelloWorldService">bindingNS:HelloWorldEndpointBinding</wsdl-binding>
<service-endpoint-method-mapping>
<java-method-name>getHello</java-method-name>
<wsdl-operation>getHello</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="urn:HelloWorldService">wsdlMsgNS:HelloWorldEndpoint_getHello</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="urn:HelloWorldService">wsdlMsgNS:HelloWorldEndpoint_getHelloResponse</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>
*** the webservices.xml file
<?xml version='1.0' encoding='UTF-8' ?>
<webservices
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:impl="http://com.myapp/ws4ee"
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>HelloWorldService</webservice-description-name>
<wsdl-file>META-INF/wsdl/HelloWorldService.wsdl</wsdl-file>
<jaxrpc-mapping-file>META-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
<port-component>
port component description
<port-component-name>HelloWorldService</port-component-name>
<wsdl-port>HelloWorldEndpointPort</wsdl-port>
<service-endpoint-interface>helloworld.ejb.HelloWorldEndpoint</service-endpoint-interface>
<service-impl-bean>
<ejb-link>helloworld</ejb-link>
</service-impl-bean>
</port-component>
</webservice-description>
*** the EJB-jar.xml file
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<display-name>helloworld</display-name>
<ejb-name>helloworld</ejb-name>
<service-endpoint>helloworld.ejb.HelloWorldEndpoint</service-endpoint>
helloworld.ejb.HelloWorldHome
helloworld.ejb.HelloWorld
<local-home>helloworld.ejb.HelloWorldLocalHome</local-home>
helloworld.ejb.HelloWorldLocal
<ejb-class>helloworld.ejb.HelloWorldBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</enterprise-beans>
</ejb-jar>