geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Ejb web services and jndi name
Date Sat, 25 Nov 2006 07:31:09 GMT
A couple of obvious problems are that you don't have a service-ref in  
the web.xml and it's not clear if the wsdl is accessible to the web  
service client (which IIUC is the web app)

thanks
david jencks

On Nov 24, 2006, at 1:20 PM, Francesco Sessa wrote:

> 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.
>
>


Mime
View raw message