[ http://issues.apache.org/jira/browse/AXIS-2210?page=comments#action_12424584 ] Peter Conrey commented on AXIS-2210: ------------------------------------
Just add a flag or option to WSDL2Java to allow the CORRECT behavior: reversal of http:// style namespaces, and as-is use of URN namespaces. I realize the default behavior shouldn't be changed, but there should at least be some way of doing it right. > wsdl2java reverses urn namespace when creating package name. > ------------------------------------------------------------ > > Key: AXIS-2210 > URL: http://issues.apache.org/jira/browse/AXIS-2210 > Project: Apache Axis > Issue Type: Bug > Components: WSDL processing > Environment: Axis-wsdl2java within an ANT task, also embedded within > Web service wizard of Eclipse 3.1 WTP 0.7. Windows XP/2000 platfroms. > Reporter: Mike Coutts > > While building a Web service [within Eclipse] using a top down process from a > WSDL file with an associated XSD schema file the Web services wizard creates > the java skeleton for the web service and the Java proxy for testing OK. > However it reverses the package naming throughout such that a target > namespace of urn:com.ncr.test.message becomes the Java package > message.test.ncr.com. > The reversed package name is used consistently throughout the auto-generated > code from java modules, through Servlet definitions to the test client JSP's > so that refactoring to achieve the desired package naming would be a major > operation. This also suggests that the reversal occurs very early on in the > web services wizard, so we tested WSDL/XSD files listed below using just an > ANT driven AXIS Task > <axis-wsdl2java > serverside="true" > output="temp" > testcase="false" > verbose="true" > url="test.wsdl"> > </axis-wsdl2java> > And receive the same results, hence suggesting that the problem is in > axis-wsdl2java > If we specifically list a mapping from the namespace to the package it works > OK. > i.e. > <axis-wsdl2java > serverside="true" > output="temp" > testcase="false" > verbose="true" > url="test.wsdl"> > <mapping > namespace="urn:com.ncr.test" > package="com.ncr.test"/> > > <mapping > namespace="urn:com.ncr.test.message" > package="com.ncr.test.message"/> > </axis-wsdl2java> > However this can be done easily within Eclipse WTP. > My suspicion would be that the same process for reversing the namespace is > being applied to urn:com.ncr.test and urn:com.ncr.test.message as is applied > (rightly) to the http:// based equivalents i.e. http://ncr.com/test and > http://ncr.com/test/message. > The files test.wsdl and message-configuration.xsd are listed here for > verification purposes. > test.wsdl > <wsdl:definitions > xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:s="http://www.w3.org/2001/XMLSchema" > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:tns="urn:com.ncr.test" > xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" > xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" > targetNamespace="urn:com.ncr.test" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:tmcfg="urn:com.ncr.test.message" name="Messaging"> > <wsdl:types> > <s:schema elementFormDefault="qualified" > targetNamespace="urn:com.ncr.test"> > <s:import schemaLocation="message-configuration.xsd" > namespace="urn:com.ncr.test.message"/> > <s:complexType name="Message"> > <s:sequence> > <s:element minOccurs="1" maxOccurs="1" > name="contents" > type="tmcfg:MessageContents" /> > </s:sequence> > </s:complexType> > <s:complexType name="MessageRequestResult"> > <s:sequence> > <s:element minOccurs="1" maxOccurs="1" > name="message" type="tns:Message" /> > </s:sequence> > </s:complexType> > <s:element name="RetrieveMessage"> > <s:complexType> > <s:sequence> > <s:element minOccurs="1" maxOccurs="1" > name="consumerUniqueId" > type="s:string" /> > </s:sequence> > </s:complexType> > </s:element> > <s:element name="RetrieveMessageResponse"> > <s:complexType> > <s:sequence> > <s:element minOccurs="1" maxOccurs="1" > name="RetrieveMessageResult" > type="tns:MessageRequestResult" /> > </s:sequence> > </s:complexType> > </s:element> > </s:schema> > </wsdl:types> > <wsdl:message name="RetrieveMessageSoapIn"> > <wsdl:part name="parameters" element="tns:RetrieveMessage" /> > </wsdl:message> > <wsdl:message name="RetrieveMessageSoapOut"> > <wsdl:part name="parameters" element="tns:RetrieveMessageResponse" /> > </wsdl:message> > <wsdl:portType name="MessagingSoap"> > <wsdl:operation name="RetrieveMessage"> > <wsdl:input message="tns:RetrieveMessageSoapIn" /> > <wsdl:output message="tns:RetrieveMessageSoapOut" /> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="MessagingSoap" type="tns:MessagingSoap"> > <soap:binding transport="http://schemas.xmlsoap.org/soap/http" > style="document" /> > <wsdl:operation name="RetrieveMessage"> > <soap:operation > soapAction="urn:com.ncr.test/RetrieveMessage" > style="document" /> > <wsdl:input> > <soap:body use="literal" /> > </wsdl:input> > <wsdl:output> > <soap:body use="literal" /> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="Messaging"> > <documentation xmlns="http://schemas.xmlsoap.org/wsdl/" /> > <wsdl:port name="MessagingSoap" binding="tns:MessagingSoap"> > <soap:address location="http://localhost/messaging/Service1.asmx" /> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > message-configuration.xsd > <?xml version="1.0" encoding="UTF-8"?> > <s:schema id="message-configuration" > targetNamespace="urn:com.ncr.test.message" > elementFormDefault="qualified" xmlns="urn:com.ncr.test.message" > xmlns:s="http://www.w3.org/2001/XMLSchema"> > <s:complexType name="MessageContents"> > <s:sequence> > <s:element minOccurs="1" maxOccurs="1" name="text" > type="s:string"/> > <s:element minOccurs="1" maxOccurs="1" name="graphic" > type="s:string"/> > </s:sequence> > </s:complexType> > </s:schema> > This issue was originally found in Eclipse 3.1 WTP 0.7 and reported as > Eclipse.org Bugzilla report 105939, which was entered over a month ago > although there has been no response or comment. > Having tried this with Axis-wsdl2java we now suspect the issue is possibly > within the Axis-WSDL2JAVA processing engine. However, it can easily be > reproduced within Eclipse using the following instructions. > To reproduce on Eclipse 3.1 with WTP 0.7 on Windows 2000 (target server and > runtime is Tomcat 5.0 with j2sdk1.4.2_08). > 1. Open a new eclipse project workspace > 2. Set the JRE to j2sdk1.4.2_08 (Window -> Preferences -> Java -> Installed > JRE) > 3. Set the Server runtime to Apache Tomcat 5.9 (Window -> Preferences -> > Server -> Installed Runtimes -> Add -> Apache Tomcat 5.0). > 4. Create a new Dynamic Web Project called test. > 5. In the WebContent directory add a folder called wsdl > 6. Copy test.wsdl and message-configuration.xsd into the wsdl folder (file > content included at end of report). > 7. Right click Test.wsdl and start the Web services wizard with New -> Other > -> Web services -> Web service. > 8. Web service type should be "Top down java bean web service". > 9. Select "Generate a proxy" and "Test the Web service", click next > 10. WSDL should read /Test/WebContent/wsdl/test.wsdl, click next > 11. Service deployment configuration should indicate the Web service runtime > as Apache Axis and the server as Tomcat v5.0, click Finish to build the web > service. > A quick look at the JavaSource directory under projects Test and TestClient > should show package of message.test.ncr.com and test.ncr.com. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]