geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Francesco Sessa <francesco.se...@email.it>
Subject Ejb web services and jndi name
Date Fri, 24 Nov 2006 21:20:30 GMT
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