geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Francesco Sessa <francesco.se...@email.it>
Subject Re: Ejb web services and jndi name
Date Sat, 25 Nov 2006 14:06:44 GMT
Hi,
I believed that the service-ref element in the geronimo-web.xml was enught.
I have modified the web.xml but i receive this message:

java.lang.RuntimeException: Could not open stream to wsdl file

I know that it's not clear if the wsdl is accessible to the web service client, but whitch
it is the solution?


Please help me.
this is the new 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>
<service-ref>
<service-ref-name>CiaoWSService</service-ref-name>
<service-interface>org.eclipse.Ciao.CiaoWSService</service-interface>
<wsdl-file>META-INF/CiaoWSService.wsdl</wsdl-file>
<jaxrpc-mapping-file>META-INF/mapping.xml</jaxrpc-mapping-file>
</service-ref>
</web-app>

How to know the url address of the service?

Thanks

David Jencks ha scritto:
> 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