Hi all,
I'm a new user of geronimo.
To complete my bachelor thesis, i need to create simples web services
with ejb.
I create the Jar file and deploy it on application server, but, when i
try to connect my client
to my web services, i receive the message that the jndi name isn't
correct.
I think that the error was in the deployment xml of the client, but i
don't be able to get the wsdl of the service
via browser (i try with the url written in the wsdl, but,
evidently, it
isn't correct).
Please, i must deliver my work monday morning.
endpoint interface
package org.eclipse.Ciao;
import java.rmi.RemoteException;
import java.rmi.Remote;
public interface CiaoWSService extends Remote{
public String getString(String name) throws RemoteException;
}
home interface
package org.eclipse.Ciao;
import java.rmi.RemoteException;
import javax.ejb.*;
public interface CiaoWSHome extends EJBHome{
CiaoWS create() throws RemoteException, CreateException;
}
remote interface
package org.eclipse.Ciao;
import java.rmi.RemoteException;
import javax.ejb.*;
public interface CiaoWS extends EJBObject{
public String getString(String name) throws RemoteException;
}
bean implementation
package org.eclipse.Ciao;
import javax.ejb.*;
import java.rmi.RemoteException;
public class CiaoWSBean implements SessionBean{
public String getString(String name) throws RemoteException{
return "Ciao " + name;
}
public void ejbCreate(){}
public void ejbRemove(){}
public void ejbActivate(){}
public void ejbPassivate(){}
public void setSessionContext(SessionContext sc){}
}
----------------------------------------------------------------------
------------------------
wsdl generated with jwsdp
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="CiaoWSService" targetNamespace="urn:geronimo-
ciaows"
xmlns:tns="urn:geronimo:ciaows" 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="CiaoWSService_getString">
<part name="String_1" type="xsd:string"/></message>
<message name="CiaoWSService_getStringResponse">
<part name="result" type="xsd:string"/></message>
<portType name="CiaoWSService">
<operation name="getString" parameterOrder="String_1">
<input message="tns:CiaoWSService_getString"/>
<output
message="tns:CiaoWSService_getStringResponse"/></operation></portType>
<binding name="CiaoWSServiceBinding" type="tns:CiaoWSService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="rpc"/>
<operation name="getString">
<soap:operation soapAction=""/>
<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
use="encoded"
namespace="http://ciaows.org/wsdl"/></input>
<output>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
use="encoded"
namespace="http://ciaows.org/wsdl"/></output></operation></binding>
<service name="CiaoWSService">
<port name="CiaoWSServicePort" binding="tns:CiaoWSServiceBinding">
<soap:address
location="http://127.0.0.1:8080/ejb/CiaoWS"/></port></service></
definitions>
----------------------------------------------------------------------
---------------
ejb-jar.xml
<?xml version="1.0" ?>
<ejb-jar id="ejb-jar_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://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" version="2.1">
<description>Web Service CiaoWS </description>
<display-name>Ciao WS</display-name>
<enterprise-beans>
<session>
<ejb-name>CiaoWSBean</ejb-name>
<home>org.eclipse.Ciao.CiaoWSHome</home>
<remote>org.eclipse.Ciao.CiaoWS</remote>
<ejb-class>org.eclipse.Ciao.CiaoWSBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
----------------------------------------------------------------------
----------------------
openejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1"
xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.1"
xmlns:pkgen="http://www.openejb.org/xml/ns/pkgen-2.0"
xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.1"
xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1">
<sys:environment>
<sys:moduleId>
<sys:groupId>default</sys:groupId>
<sys:artifactId>CiaoWSBean_artifact_in_openejb</sys:artifactId>
<sys:version>1.0</sys:version>
<sys:type>car</sys:type>
</sys:moduleId>
<sys:dependencies>
<sys:dependency>
<sys:groupId>geronimo</sys:groupId>
<sys:artifactId>geronimo-webservices</sys:artifactId>
<sys:type>jar</sys:type>
</sys:dependency>
<sys:dependency>
<sys:groupId>geronimo</sys:groupId>
<sys:artifactId>geronimo-axis</sys:artifactId>
<sys:type>jar</sys:type>
</sys:dependency>
</sys:dependencies>
<sys:hidden-classes/>
<sys:non-overridable-classes/>
</sys:environment>
<enterprise-beans>
<session>
<ejb-name>CiaoWSBean</ejb-name>
<jndi-name>CiaoWSBean</jndi-name>
</session>
</enterprise-beans>
</openejb-jar>
----------------------------------------------------------------------
-----------------
webservices.xml
<?xml version="1.0" encoding="UTF-8"?>
<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"
xmlns:ger="http://ciaows.org/wsdl"
version="1.1">
<webservice-description>
<webservice-description-name>
CiaoWS
</webservice-description-name>
<wsdl-file>META-INF/CiaoWSService.wsdl</wsdl-file>
<jaxrpc-mapping-file>META-INF/mapping.xml</jaxrpc-mapping-file>
<port-component>
<port-component-name>CiaoWS</port-component-name>
<wsdl-port>ger:CiaoWSServicePort</wsdl-port>
<service-endpoint-interface>
org.eclipse.Ciao.CiaoWSService
</service-endpoint-interface>
<service-impl-bean>
<ejb-link>CiaoWSBean</ejb-link>
</service-impl-bean>
</port-component>
</webservice-description>
</webservices>
----------------------------------------------------------------------
--------------------
mapping.xml generated with jwsdp
<?xml version="1.0" encoding="UTF-8"?>
<java-wsdl-mapping xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1"
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>org.eclipse</package-type>
<namespaceURI>http://ciaows.org/types</namespaceURI>
</package-mapping>
<package-mapping>
<package-type>org.eclipse</package-type>
<namespaceURI>http://ciaows.org/wsdl</namespaceURI>
</package-mapping>
<service-interface-mapping>
<service-interface>org.eclipse.CiaoWSService</service-interface>
<wsdl-service-name
xmlns:serviceNS="http://ciaows.org/wsdl">serviceNS:CiaoWSService</
wsdl-service-name>
<port-mapping>
<port-name>CiaoWSServicePort</port-name>
<java-port-name>CiaoWSServicePort</java-port-name>
</port-mapping>
</service-interface-mapping>
<service-endpoint-interface-mapping>
<service-endpoint-interface>org.eclipse.Ciao.CiaoWSService</service-
endpoint-interface>
<wsdl-port-type
xmlns:portTypeNS="http://ciaows.org/wsdl">portTypeNS:CiaoWSService</
wsdl-port-type>
<wsdl-binding
xmlns:bindingNS="http://ciaows.org/
wsdl">bindingNS:CiaoWSServiceBinding</wsdl-binding>
<service-endpoint-method-mapping>
<java-method-name>getString</java-method-name>
<wsdl-operation>getString</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://ciaows.org/
wsdl">wsdlMsgNS:CiaoWSService_getString</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://ciaows.org/
wsdl">wsdlMsgNS:CiaoWSService_getStringResponse</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>
----------------------------------------------------------------------
---------------
client jsp implementation
<%@ page import="org.eclipse.Ciao.CiaoWSHome,
org.eclipse.Ciao.CiaoWS,
javax.naming.InitialContext,
javax.naming.Context,
java.util.*"%>
<html>
<head>
<title>OpenEJB -- EJB for Tomcat</title>
</head>
<body>
Stateless Session bean - HelloBean - says:
<%
Context initCtx = new InitialContext();
Object object = initCtx.lookup("java:comp/env/ejb/CiaoWSBean");
CiaoWSHome ciaoHome = (CiaoWSHome)
javax.rmi.PortableRemoteObject.narrow(object,
CiaoWSHome.class);
CiaoWS bean = ciaoHome.create();
%>
<%= bean.getString("Francesco") %>
</body>
</html>
---------------------------------------------------------------------
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 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://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<description>
JSP 2.0 Examples.
</description>
<display-name>JSP 2.0 Examples</display-name>
<welcome-file-list>
<welcome-file>CiaoWSClient.jsp</welcome-file>
</welcome-file-list>
<!--<ejb-ref>
<ejb-ref-name>ejb/CiaoWS</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>org.eclipse.Ciao.CiaoWSHome</home>
<remote>org.eclipse.Ciao.CiaoWS</remote>
<ejb-link>CiaoWSBean</ejb-link>
</ejb-ref>-->
</web-app>
----------------------------------------------------------------------
-----
geronimo-web.xml
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web/
tomcat-1.1">
<environment>
<moduleId>
<groupId>default</groupId>
<artifactId>ejbref-war</artifactId>
<version>1.0-SNAPSHOT</version>
<type>car</type>
</moduleId>
</environment>
<context-root>/CiaoWSClient</context-root>
<!--
<service-ref>
<service-ref-name>ejb/CiaowS</service-ref-name>
<service-interface>org.eclipse.client.CiaoWSClient</service-
interface>
<wsdl-file>WEB-INF/CiaoWSService.wsdl</wsdl-file>
<jaxrpc-mapping-file>WEB-INF/mapping.xml</jaxrpc-mapping-file>
</service-ref>
-->
<service-ref>
<service-ref-name>ejb/CiaoWS</service-ref-name>
<port>
<port-name>CiaoWS</port-name>
<uri>http://localhost:8080/CiaoWS</uri>
</port>
</service-ref>
</web-app>
----------------------------------------------------------------------
--------
I hope in one quick answer. thanks
Francesco
PS. Sorry for my english.