geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aaron Mulder <ammul...@alumni.princeton.edu>
Subject Re: WEBSERVICES problem
Date Mon, 06 Feb 2006 06:01:17 GMT
I was able to get a web services reference (service-ref) from a web
app to connect to an EJB exposed as a web service in Geronimo 1.0 when
working through some tests for my web services chapter at:

http://chariotsolutions.com/geronimo/web-services.html

However, I did not try a dynamic proxy client.

I did notice that a servlet web service got an extra slash in the URL
it generated in the WSDL, though in my case it was after the port not
at the end of the name.  Perhaps this is related?

If you look at the WSDL file at the URL
http://localhost:8080/TestEJB/Hello?wsdl (NOTE: not your original copy
of the WSDL, but specifically look at the copy at that URL), does the
service URL have the extra slash in it?  If so, that's likely the
problem, and possibly related to the slash problem I had, which I
recorded at:

http://issues.apache.org/jira/browse/GERONIMO-1584

In any case, to work around this, you might try adding a
web-service-address element to your EJB configuration in
openejb-jar.xml and see if you can provide an explicit value there
that might override the auto-generated one with the extra slash. 
(Also, of course, make sure you don't have a web-service-address there
already that has a slash on the end.)

Thanks,
    Aaron

On 2/5/06, Phani Madgula <phanibalaji.madgula@gmail.com> wrote:
> Hi
>
> I have deployed a WEBSERVICE implemented using an EJB, and facing a problem
> while accessing through Dynamic Proxy client.
> The client is as follows.
>
>
>
>         String urlstr   =
> "http://localhost:8080/TestEJB/Hello?wsdl";
>
>          String argument =  "phani";
>
>         System.out.println("Contacting webservice at " + urlstr);
>
>         URL url =  new URL(urlstr);
>
>         QName qname = new QName("http://hello.phani.org/", "HelloService");
>
>         ServiceFactory factory = ServiceFactory.newInstance();
>         Service        service = factory.createService(url, qname);
>
>         Hello          hello   = (Hello) service.getPort(Hello.class);
>
>         System.out.println("hello.hello(" + argument + ")");
>         System.out.println("output:" + hello.hello(argument));
>
>
>
> The error is
>
> Contacting webservice at
> http://localhost:8080/TestEJB/Hello?wsdl
> Exception in thread "main" javax.xml.rpc.ServiceException: Error processing
> WSDL document:
> java.io.IOException: Server returned HTTP response code: 500 for URL:
> http://localhost:8080/TestEJB/Hello/?wsdl
>         at org.apache.axis.client.Service.initService
> (Service.java:250)
>         at org.apache.axis.client.Service.<init>(Service.java:165)
>         at
> org.apache.axis.client.ServiceFactory.createService(ServiceFactory.java:198)
>         at HelloClient.main(HelloClient.java :27)
>
> If we can observe the error trace, a '/' is getting appended for the URL
> "http://localhost:8080/TestEJB/Hello" and making it "
> http://localhost:8080/TestEJB/Hello/?wsdl". It is not
> happening for WEBSERVICE implemented using a servlet.
>
>
>
> The WSDL is as follows.
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <definitions name="HelloService" targetNamespace="http://hello.phani.org/"
> xmlns:tns="http://hello.phani.org/" 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="Hello_hello">
>     <part name="String_1" type="xsd:string"/></message>
>   <message name="Hello_helloResponse">
>     <part name="result" type="xsd:string"/></message>
>   <portType name="Hello">
>     <operation name="hello" parameterOrder="String_1">
>        <input message="tns:Hello_hello"/>
>       <output
> message="tns:Hello_helloResponse"/></operation></portType>
>   <binding name="HelloBinding" type="tns:Hello">
>     <soap:binding
> transport="http://schemas.xmlsoap.org/soap/http"
> style="rpc"/>
>     <operation name="hello">
>       <soap:operation soapAction=""/>
>       <input>
>         <soap:body use="literal"
> namespace="http://hello.phani.org/"/></input>
>       <output>
>          <soap:body use="literal"
> namespace="http://hello.phani.org/"/></output></operation></binding
> >
>   <service name="HelloService">
>     <port name="HelloPort" binding="tns:HelloBinding">
>       <soap:address location="
> http://localhost:8080/TestEJB/Hello"/></port></service></definitions>
>
>
> Why is an extra '/' is getting added ?
>
> Any issues?
>
> Thanks
>
> phani
>
>
>
>
>
>
>
>
>
>
>

Mime
View raw message