Mantis - Resin
|
|||||
Viewing Issue Advanced Details | |||||
|
|||||
ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
1838 | block | always | 06-28-07 12:27 | 07-03-07 14:15 | |
|
|||||
Reporter: | johndidion | Platform: | |||
Assigned To: | emil | OS: | |||
Priority: | normal | OS Version: | |||
Status: | closed | Product Version: | 3.1.1 | ||
Product Build: | Resolution: | fixed | |||
Projection: | none | ||||
ETA: | none | Fixed in Version: | 3.1.2 | ||
|
|||||
Summary: | 0001838: Resin generates invalid WSDL for SOAP web services | ||||
Description: |
I wrote a simple web service (called "commerce") and deployed it. The wsdl generated at http://localhost:8080/commerce/soap?wsdl [^] is invalid. WSDL validity can be checked in several different ways, but I used SoapUI. I also tried to generate the client using Axis' wsdl2java, and that failed as well. I put severity as "block" because this is blocking us from deploying on Resin 3.1. We can't release a service that can only be consumed by people using Resin clients. |
||||
Steps To Reproduce: | |||||
Additional Information: |
---------------------------------------------------------- WS interface ---------------------------------------------------------- import javax.jws.WebService; import javax.jws.WebMethod; import java.util.List; @WebService public interface CommerceService { @WebMethod boolean purchase(String productId); @WebMethod List<String> listPurchases(); } ---------------------------------------------------------- WS impl ---------------------------------------------------------- import javax.jws.WebService; import javax.jws.WebMethod; import java.util.List; import java.util.ArrayList; @WebService(endpointInterface = "commerce.CommerceService") public class CommerceServiceImpl implements CommerceService { private List<String> purchases = new ArrayList<String>(); @WebMethod public boolean purchase(String productId) { if (this.purchases.contains(productId)) { return false; } this.purchases.add(productId); return true; } @WebMethod public List<String> listPurchases() { return this.purchases; } } ---------------------------------------------------------- web.xml ---------------------------------------------------------- <web-app xmlns="http://caucho.com/ns/resin"> [^] <servlet-mapping url-pattern="/soap/*" servlet-class="commerce.CommerceServiceImpl"> <protocol type="soap"/> </servlet-mapping> </web-app> ---------------------------------------------------------- generated WSDL ---------------------------------------------------------- <?xml version="1.0" standalone="yes"?> <definitions targetNamespace="http://commerce/" [^] name="CommerceServiceImplService" xmlns="http://schemas.xmlsoap.org/wsdl/" [^] xmlns:ns0="http://www.w3.org/2001/XMLSchema" [^] xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" [^] xmlns:m="http://commerce/"> [^] <types> <ns0:schema> <ns0:import namespace="http://commerce/" [^] schemaLocation="CommerceServiceImplService_schema1.xsd"/> </ns0:schema> </types> <message name="listPurchases"> <part name="parameters" element="m:listPurchases"/> </message> <message name="listPurchasesResponse"> <part name="parameters" element="m:listPurchasesResponse"/> </message> <message name="purchase"> <part name="parameters" element="m:purchase"/> </message> <message name="purchaseResponse"> <part name="parameters" element="m:purchaseResponse"/> </message> <portType name="CommerceServiceImpl"> <operation name="listPurchases"> <input message="m:listPurchases"/> <output message="m:listPurchasesResponse"/> </operation> <operation name="purchase"> <input message="m:purchase"/> <output message="m:purchaseResponse"/> </operation> </portType> <binding name="CommerceServiceImplPortBinding" type="m:CommerceServiceImpl"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" [^] style="document"/> <operation name="listPurchases"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> <operation name="purchase"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="CommerceServiceImplService"> <port name="CommerceServiceImplPort" binding="m:CommerceServiceImplPortBinding"> <soap:address location=""/> </port> </service> </definitions> ---------------------------------------------------------- SoapUI errors ---------------------------------------------------------- Thu Jun 28 11:48:12 PDT 2007:ERROR:Could not find element [{http://commerce/}listPurchases] [^] specified in part [parameters] Thu Jun 28 11:48:12 PDT 2007:ERROR:Could not find element [{http://commerce/}purchase] [^] specified in part [parameters] |
||||
Relationships | |||||
Attached Files: |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|