Hello,
First of all: I'm quite new to Geronimo as well as to J2EE in general, so don't
blame me if my question is studip. ;-)
I developed a small stateless session bean and tried to make a web service out
of it. The deployment to Geronimo (Tomcat version) was successful, but I was
not able to receive the WSDL (e. g. using a web browser).
Instead the following error is displayed: HTTP Status 500 - Could not fetch
wsdl!
The Geronimo logfile shows the following:
16:09:42,484 ERROR [TomcatEJBWebServiceContext]
java.lang.IllegalStateException: request must contain a wsdl or WSDL parameter:
{wsdl=[Ljava.lang.String;@1ad0ff8}
After a trying hard to find the error I installed the Jetty version of Geronimo
- and everything worked fine.
All I found out until now is, that the Tomcat version seems to change the URL
if I try to access the WSDL .
Let's say I type in my webbrowser
"http://localhost:8080/MyDemo/MyDemoWebService?wsdl" then
"http://localhost:8080/MyDemo/MyDemoWebService/?wsdl" is returned/displayed in
the browser instead.
Might this cause the problem?
My MyDemo.wsdl file looks like:
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="MyDemo" targetNamespace="http://com.demo"
xmlns:tns="http://com.demo" 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="MyDemoSEI_getDemoString">
<part name="mystring" type="xsd:string"/></message>
<message name="MyDemoSEI_getDemoStringResponse">
<part name="result" type="xsd:string"/></message>
<portType name="MyDemoSEI">
<operation name="getDemoString" parameterOrder="mystring">
<input message="tns:MyDemoSEI_getDemoString"/>
<output
message="tns:MyDemoSEI_getDemoStringResponse"/></operation></portType>
<binding name="MyDemoSEIBinding" type="tns:MyDemoSEI">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
<operation name="getDemoString">
<soap:operation soapAction=""/>
<input>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
use="encoded" namespace="http://com.demo"/></input>
<output>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
use="encoded" namespace="http://com.demo"/></output></operation></binding>
<service name="MyDemo">
<port name="MyDemoSEIPort" binding="tns:MyDemoSEIBinding">
<soap:address
location="http://localhost:8080/MyDemo/MyDemoWebService"/></port>
</service>
</definitions>
And here is the webservice.xml file:
<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"
version="1.1">
<webservice-description>
<webservice-description-name>MyDemoWebService</webservice-description-name>
<wsdl-file>META-INF/MyDemo.wsdl</wsdl-file>
<jaxrpc-mapping-file>META-INF/server-jaxrpc-mapping.xml</jaxrpc-mapping-file>
<port-component>
<port-component-name>MyDemoWebService</port-component-name>
<wsdl-port>MyDemoSEIPort</wsdl-port>
<service-endpoint-interface>com.demo.MyDemoSEI</service-endpoint-interface>
<service-impl-bean>
<ejb-link>MyDemo</ejb-link>
</service-impl-bean>
</port-component>
</webservice-description>
</webservices>
Any idea what goes wrong? As I said, the are no problems using the Jetty
Version of Geronimo.
Greets,
Markus
Schnell und einfach ohne Anschlusswechsel zur Lycos DSL Flatrate wechseln und 3
Monate kostenlos ab effektiven 5,21 EUR pro Monat im ersten Jahr surfen.
http://www.lycos.de/startseite/online/dsl/index.html?prod=DSL&trackingID=email_footertxt