You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2003/04/28 03:55:51 UTC
cvs commit: xml-axis/java/src/org/apache/axis/description ServiceDesc.java
dims 2003/04/27 18:55:51
Modified: java/src/org/apache/axis/wsdl/fromJava Emitter.java
java/src/org/apache/axis/description ServiceDesc.java
Added: java/test/wsdl/qname build.xml foo.java MyServiceImpl.java
MyServiceInterface.java
Log:
Fix and Test cases for Bug 19274 - Java2WSDL failure: Attempted to write schema for bad QName
from bkeane@6thStreet.net (Brian Keane)
Revision Changes Path
1.1 xml-axis/java/test/wsdl/qname/build.xml
Index: build.xml
===================================================================
<?xml version="1.0" ?>
<!DOCTYPE project [
<!ENTITY properties SYSTEM "file:../../../xmls/properties.xml">
<!ENTITY paths SYSTEM "file:../../../xmls/path_refs.xml">
<!ENTITY taskdefs SYSTEM "file:../../../xmls/taskdefs.xml">
<!ENTITY taskdefs_post_compile SYSTEM "file:../../../xmls/taskdefs_post_compile.xml">
<!ENTITY targets SYSTEM "file:../../../xmls/targets.xml">
]>
<!-- ===================================================================
<description>
Test/Sample Component file for Axis
Notes:
This is a build file for use with the Jakarta Ant build tool.
Prerequisites:
jakarta-ant from http://jakarta.apache.org
Build Instructions:
To compile
ant compile
To execute
ant run
Author:
Matt Seibert mseibert@us.ibm.com
Copyright:
Copyright (c) 2002-2003 Apache Software Foundation.
</description>
==================================================================== -->
<project default="compile">
<property name="axis.home" location="../../.." />
<property name="componentName" value="test/wsdl/qname" />
&properties;
&paths;
&taskdefs;
&taskdefs_post_compile;
&targets;
<target name="clean">
<echo message="componentName is ${componentName}"/>
<echo message="Removing ${build.dir}/**/test/wsdl/qname" />
<delete dir="${build.dir}/classes/test/wsdl/qname"/>
<delete dir="${build.dir}/work/test/wsdl/qname"/>
</target>
<!-- main target, always start from scratch -->
<target name="compile" depends="setenv, clean">
<echo message="Compiling test.wsdl.qname"/>
<!-- Compile the test classes for Java2WSDL -->
<javac srcdir="${axis.home}/test/wsdl/qname"
destdir="${build.dest}"
fork="${javac.fork}"
debug="${debug}">
<classpath refid="classpath" />
<include name="foo.java" />
<include name="MyServiceImpl.java" />
<include name="MyServiceInterface.java" />
</javac>
<mkdir dir="${build.dir}/work/test/wsdl/qname"/>
<!-- Test #1 for Bug 19274 - Java2WSDL failure: Attempted to write schema for bad QName -->
<!-- Generate WSDL from java -->
<java2wsdl classname="test.wsdl.qname.MyServiceInterface"
implclass="test.wsdl.qname.MyServiceImpl"
location="http://whereever/MyService/servicesMyservice"
namespace="urn:sample"
namespaceimpl="urn:sample-impl"
style="WRAPPED"
serviceelementname="MyService"
output="${build.dir}/work/test/wsdl/qname/MyService.wsdl">
<mapping package="test.wsdl.qname" namespace="http://test.com/qname" />
</java2wsdl>
<!-- Test #2 for Bug 19274 - Java2WSDL failure: Attempted to write schema for bad QName -->
<!-- Generate WSDL from java -->
<java2wsdl classname="test.wsdl.qname.foo"
location="http://yada.yada/"
namespace="urn:sample2"
namespaceimpl="urn:sample2-impl"
style="DOCUMENT"
use="LITERAL"
serviceelementname="Foo"
output="${build.dir}/work/test/wsdl/qname/MyService2.wsdl">
<mapping package="test.wsdl.qname" namespace="http://test.com/qname" />
</java2wsdl>
</target>
<target name="run" >
<antcall target="execute-Component" />
</target>
</project>
1.1 xml-axis/java/test/wsdl/qname/foo.java
Index: foo.java
===================================================================
package test.wsdl.qname;
public class foo
{
public void bar(String foobar)
{
}
}
1.1 xml-axis/java/test/wsdl/qname/MyServiceImpl.java
Index: MyServiceImpl.java
===================================================================
package test.wsdl.qname;
import java.rmi.RemoteException;
public class MyServiceImpl implements MyServiceInterface {
public MyServiceImpl() {
}
public String Hello(String pName) throws java.rmi.RemoteException {
return "Hello, " + pName;
}
public String HelloAgain(int pName) throws java.rmi.RemoteException {
return "Hello Again, " + Integer.toString(pName);
}
}
1.1 xml-axis/java/test/wsdl/qname/MyServiceInterface.java
Index: MyServiceInterface.java
===================================================================
package test.wsdl.qname;
import java.rmi.Remote;
public interface MyServiceInterface extends Remote {
public String Hello(String pName) throws java.rmi.RemoteException;
public String HelloAgain(int pName) throws java.rmi.RemoteException;
}
1.90 +8 -1 xml-axis/java/src/org/apache/axis/wsdl/fromJava/Emitter.java
Index: Emitter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/fromJava/Emitter.java,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -r1.89 -r1.90
--- Emitter.java 22 Apr 2003 19:36:10 -0000 1.89
+++ Emitter.java 28 Apr 2003 01:55:50 -0000 1.90
@@ -568,8 +568,15 @@
}
}
- if(cls != null)
+ // set the namespaces in the serviceDesc(s)
+ serviceDesc.setDefaultNamespace(intfNS);
+ if (serviceDesc2 != null) {
+ serviceDesc2.setDefaultNamespace(implNS);
+ }
+
+ if(cls != null) {
namespaces.put(cls.getName(), intfNS, "intf");
+ }
namespaces.putPrefix(implNS, "impl");
}
}
1.75 +4 -2 xml-axis/java/src/org/apache/axis/description/ServiceDesc.java
Index: ServiceDesc.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/description/ServiceDesc.java,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -r1.74 -r1.75
--- ServiceDesc.java 22 Apr 2003 19:34:22 -0000 1.74
+++ ServiceDesc.java 28 Apr 2003 01:55:51 -0000 1.75
@@ -1140,13 +1140,15 @@
for (int k = 0; k < paramTypes.length; k++) {
Class type = paramTypes[k];
ParameterDesc paramDesc = new ParameterDesc();
+ String opNamespace = operation.getElementQName().getNamespaceURI();
+
// If we have a name for this param, use it, otherwise call
// it "in*"
if (paramNames != null && paramNames[k] != null &&
paramNames[k].length()>0) {
- paramDesc.setName(paramNames[k]);
+ paramDesc.setQName(new QName(opNamespace, paramNames[k]));
} else {
- paramDesc.setName("in" + k);
+ paramDesc.setQName(new QName(opNamespace, "in" + k));
}
// If it's a Holder, mark it INOUT, and set the XML type QName