You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2007/05/01 23:49:56 UTC
svn commit: r534252 - in /incubator/cxf/trunk:
common/common/src/main/java/org/apache/cxf/resource/
rt/core/src/main/java/org/apache/cxf/catalog/
rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/
rt/databinding/aegis/src/test/java/or...
Author: dkulp
Date: Tue May 1 14:49:55 2007
New Revision: 534252
URL: http://svn.apache.org/viewvc?view=rev&rev=534252
Log:
[CXF-619] Patch from Jeff relating to HTTP addresses
Bunch of Java -> WSDL updates to have it generate WSDL's that are much closer to the RI generated WSDL's.
Fix problem of relative imports from a relative wsdl not working at runtime
Modified:
incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/catalog/CatalogWSDLLocator.java
incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java
incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java
incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBSchemaInitializer.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/calculator.wsdl
incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/db.wsdl
incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/hello_soap12.wsdl
incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/my_hello_soap12.wsdl
incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_doc_lit_wrapped_localName.wsdl
incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_doc_lit_wrapped_no_wrapperclass.wsdl
incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_hello_world_doc_lit.wsdl
incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_holder.wsdl
incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/stock_noanno_wrapped.wsdl
Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java (original)
+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java Tue May 1 14:49:55 2007
@@ -48,10 +48,14 @@
// imports with locations relative to it.
curUri = currentResolver.getURI().toString();
}
+ if (currentResolver.isFile()) {
+ curUri = currentResolver.getFile().getAbsoluteFile().toURI().toString();
+ }
InputStream in = currentResolver.getInputStream();
resourceOpened.addElement(in);
InputSource source = new InputSource(in);
- source.setSystemId(curUri);
+ source.setSystemId(curUri);
+ source.setPublicId(lastestImportUri);
return source;
}
} catch (IOException e) {
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/catalog/CatalogWSDLLocator.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/catalog/CatalogWSDLLocator.java?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/catalog/CatalogWSDLLocator.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/catalog/CatalogWSDLLocator.java Tue May 1 14:49:55 2007
@@ -64,7 +64,7 @@
}
public String getBaseURI() {
- return baseUri;
+ return getBaseInputSource().getSystemId();
}
public String getLatestImportURI() {
Modified: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java (original)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java Tue May 1 14:49:55 2007
@@ -64,9 +64,9 @@
+ "xsd:element[@name='getSubmitBean']",
doc);
assertValid("//xsd:element[@name='getSubmitBean']/xsd:complexType/xsd:sequence"
- + "/xsd:element[@name='bleh'][@type='string'][@nillable='true']", doc);
+ + "/xsd:element[@name='bleh'][@type='string'][@minOccurs='0']", doc);
assertValid("//xsd:element[@name='getSubmitBean']/xsd:complexType/xsd:sequence"
- + "/xsd:element[@name='bean'][@type='SimpleBean'][@nillable='true']", doc);
+ + "/xsd:element[@name='bean'][@type='SimpleBean'][@minOccurs='0']", doc);
assertValid("/wsdl:definitions/wsdl:types"
+ "/xsd:schema[@targetNamespace='http://services.aegis.cxf.apache.org']", doc);
@@ -77,13 +77,13 @@
"/wsdl:definitions/wsdl:types"
+ "/xsd:schema[@targetNamespace='http://services.aegis.cxf.apache.org']"
+ "/xsd:complexType[@name=\"SimpleBean\"]/xsd:sequence/xsd:element"
- + "[@name=\"bleh\"][@nillable='true']",
+ + "[@name=\"bleh\"][@minOccurs='0']",
doc);
assertValid(
"/wsdl:definitions/wsdl:types"
+ "/xsd:schema[@targetNamespace='http://services.aegis.cxf.apache.org']"
+ "/xsd:complexType[@name=\"SimpleBean\"]/xsd:sequence/xsd:element"
- + "[@name=\"howdy\"][@nillable='true']",
+ + "[@name=\"howdy\"][@minOccurs='0']",
doc);
assertValid(
"/wsdl:definitions/wsdl:types"
Modified: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java (original)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java Tue May 1 14:49:55 2007
@@ -113,7 +113,7 @@
Document wsdl = getWSDLDocument("CurrencyService");
- assertValid("//xsd:element[@name='inputCurrency'][@nillable='true']", wsdl);
+ assertValid("//xsd:element[@name='inputCurrency'][@minOccurs='0']", wsdl);
assertValid("//xsd:simpleType[@name='Currency']/xsd:restriction[@base='string']", wsdl);
assertValid("//xsd:restriction[@base='string']/xsd:enumeration[@value='USD']", wsdl);
assertValid("//xsd:restriction[@base='string']/xsd:enumeration[@value='EURO']", wsdl);
Modified: incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java (original)
+++ incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java Tue May 1 14:49:55 2007
@@ -20,6 +20,7 @@
package org.apache.cxf.jaxb;
import java.lang.reflect.Array;
+import java.lang.reflect.Field;
import java.lang.reflect.GenericArrayType;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
@@ -50,8 +51,25 @@
return;
}
+ boolean isFromWrapper = part.getMessageInfo().getOperation().isUnwrapped();
+ if (isFromWrapper
+ && clazz.isArray()
+ && !Byte.TYPE.equals(clazz.getComponentType())) {
+ clazz = clazz.getComponentType();
+ }
+
Type genericType = (Type) part.getProperty("generic.type");
if (genericType != null) {
+ if (isFromWrapper
+ && genericType instanceof Class
+ && ((Class)genericType).isArray()) {
+
+ Class cl2 = (Class)genericType;
+ if (cl2.isArray()
+ && !Byte.TYPE.equals(cl2.getComponentType())) {
+ genericType = cl2.getComponentType();
+ }
+ }
addType(genericType);
if (Collection.class.isAssignableFrom(clazz)
@@ -91,21 +109,28 @@
if (cls.isArray() && cls.getComponentType().isPrimitive()) {
return;
}
- cls = JAXBUtils.getValidClass(cls);
- if (null != cls) {
- if (cls.isEnum()) {
- // The object factory stuff doesn't work for enums
- classes.add(cls);
+ if (Exception.class.isAssignableFrom(cls)) {
+ for (Field f : cls.getDeclaredFields()) {
+ addClass(f.getType());
}
- String name = PackageUtils.getPackageName(cls) + ".ObjectFactory";
- try {
- cls = Class.forName(name, false, cls.getClassLoader());
- if (cls != null) {
+ addClass(String.class);
+ } else {
+ cls = JAXBUtils.getValidClass(cls);
+ if (null != cls) {
+ if (cls.isEnum()) {
+ // The object factory stuff doesn't work for enums
+ classes.add(cls);
+ }
+ String name = PackageUtils.getPackageName(cls) + ".ObjectFactory";
+ try {
+ cls = Class.forName(name, false, cls.getClassLoader());
+ if (cls != null) {
+ classes.add(cls);
+ }
+ } catch (ClassNotFoundException ex) {
+ // cannot add factory, just add the class
classes.add(cls);
}
- } catch (ClassNotFoundException ex) {
- // cannot add factory, just add the class
- classes.add(cls);
}
}
}
Modified: incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBSchemaInitializer.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBSchemaInitializer.java?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBSchemaInitializer.java (original)
+++ incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBSchemaInitializer.java Tue May 1 14:49:55 2007
@@ -19,18 +19,32 @@
package org.apache.cxf.jaxb;
+import java.lang.reflect.Field;
import java.util.Iterator;
import javax.xml.namespace.QName;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
import com.sun.xml.bind.v2.runtime.JAXBContextImpl;
import com.sun.xml.bind.v2.runtime.JaxBeanInfo;
import org.apache.cxf.service.ServiceModelVisitor;
+import org.apache.cxf.service.factory.ServiceConstructionException;
import org.apache.cxf.service.model.MessagePartInfo;
+import org.apache.cxf.service.model.SchemaInfo;
import org.apache.cxf.service.model.ServiceInfo;
+import org.apache.cxf.wsdl.WSDLConstants;
+import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.apache.ws.commons.schema.XmlSchemaComplexType;
import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.ws.commons.schema.XmlSchemaForm;
+import org.apache.ws.commons.schema.XmlSchemaSequence;
+import org.apache.ws.commons.schema.XmlSchemaSerializer;
+import org.apache.ws.commons.schema.XmlSchemaSerializer.XmlSchemaSerializerException;
+import org.apache.ws.commons.schema.utils.NamespaceMap;
/**
* Walks the service model and sets up the element/type names.
@@ -58,8 +72,19 @@
return;
}
+ boolean isFromWrapper = part.getMessageInfo().getOperation().isUnwrapped();
+ if (isFromWrapper && clazz.isArray() && !Byte.TYPE.equals(clazz.getComponentType())) {
+ clazz = clazz.getComponentType();
+ }
+
JaxBeanInfo<?> beanInfo = context.getBeanInfo(clazz);
+
if (beanInfo == null) {
+ if (Exception.class.isAssignableFrom(clazz)) {
+ QName name = part.getMessageInfo().getName();
+ part.setElementQName(name);
+ buildExceptionType(part, clazz);
+ }
return;
}
@@ -85,5 +110,105 @@
part.setTypeQName(typeName);
part.setXmlSchema(schemas.getTypeByQName(typeName));
}
+ }
+
+ private void buildExceptionType(MessagePartInfo part, Class cls) {
+ SchemaInfo schemaInfo = null;
+ for (SchemaInfo s : serviceInfo.getSchemas()) {
+ if (s.getNamespaceURI().equals(part.getElementQName().getNamespaceURI())) {
+ schemaInfo = s;
+ break;
+ }
+ }
+ XmlSchema schema;
+ if (schemaInfo == null) {
+ schema = new XmlSchema(part.getElementQName().getNamespaceURI(), schemas);
+ schema.setElementFormDefault(new XmlSchemaForm(XmlSchemaForm.QUALIFIED));
+
+ NamespaceMap nsMap = new NamespaceMap();
+ nsMap.add(WSDLConstants.NP_SCHEMA_XSD, WSDLConstants.NU_SCHEMA_XSD);
+ schema.setNamespaceContext(nsMap);
+
+
+ schemaInfo = new SchemaInfo(serviceInfo, part.getElementQName().getNamespaceURI());
+ schemaInfo.setSchema(schema);
+ serviceInfo.addSchema(schemaInfo);
+ } else {
+ schema = schemaInfo.getSchema();
+ }
+
+ XmlSchemaElement el = new XmlSchemaElement();
+ el.setQName(part.getElementQName());
+ el.setName(part.getElementQName().getLocalPart());
+ schema.getItems().add(el);
+
+ XmlSchemaComplexType ct = new XmlSchemaComplexType(schema);
+ el.setSchemaType(ct);
+
+ XmlSchemaSequence seq = new XmlSchemaSequence();
+ ct.setParticle(seq);
+ String namespace = part.getElementQName().getNamespaceURI();
+ for (Field f : cls.getDeclaredFields()) {
+ JaxBeanInfo<?> beanInfo = context.getBeanInfo(f.getType());
+ if (beanInfo != null) {
+ el = new XmlSchemaElement();
+ el.setName(f.getName());
+ el.setQName(new QName(namespace, f.getName()));
+
+ el.setMinOccurs(1);
+ el.setMaxOccurs(1);
+ el.setNillable(true);
+
+ if (beanInfo.isElement()) {
+ QName name = new QName(beanInfo.getElementNamespaceURI(null),
+ beanInfo.getElementLocalName(null));
+ XmlSchemaElement el2 = schemas.getElementByQName(name);
+ el.setRefName(el2.getRefName());
+ } else {
+ Iterator<QName> itr = beanInfo.getTypeNames().iterator();
+ if (!itr.hasNext()) {
+ continue;
+ }
+ QName typeName = itr.next();
+ el.setSchemaTypeName(typeName);
+ }
+
+ seq.getItems().add(el);
+ }
+ }
+ JaxBeanInfo<?> beanInfo = context.getBeanInfo(String.class);
+ el = new XmlSchemaElement();
+ el.setName("message");
+ el.setQName(new QName(namespace, "message"));
+
+ el.setMinOccurs(1);
+ el.setMaxOccurs(1);
+ el.setNillable(true);
+
+ if (beanInfo.isElement()) {
+ el.setRefName(beanInfo.getTypeName(null));
+ } else {
+ el.setSchemaTypeName(beanInfo.getTypeName(null));
+ }
+ seq.getItems().add(el);
+
+ Document[] docs;
+ try {
+ docs = XmlSchemaSerializer.serializeSchema(schema, false);
+ } catch (XmlSchemaSerializerException e1) {
+ throw new ServiceConstructionException(e1);
+ }
+ Element e = docs[0].getDocumentElement();
+ schemaInfo.setElement(e);
+ // XXX A problem can occur with the ibm jdk when the XmlSchema
+ // object is serialized. The xmlns declaration gets incorrectly
+ // set to the same value as the targetNamespace attribute.
+ // The aegis databinding tests demonstrate this particularly.
+ if (e.getPrefix() == null && !WSDLConstants.NU_SCHEMA_XSD.equals(
+ e.getAttributeNS(WSDLConstants.NU_XMLNS, WSDLConstants.NP_XMLNS))) {
+ e.setAttributeNS(WSDLConstants.NU_XMLNS,
+ WSDLConstants.NP_XMLNS, WSDLConstants.NU_SCHEMA_XSD);
+ }
+ schemaInfo.setElement(e);
}
}
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java Tue May 1 14:49:55 2007
@@ -292,6 +292,11 @@
@Override
protected Class<?> getBeanClass(Class<?> exClass) {
try {
+ if (java.rmi.ServerException.class.isAssignableFrom(exClass)
+ || java.rmi.RemoteException.class.isAssignableFrom(exClass)) {
+ return null;
+ }
+
Method getFaultInfo = exClass.getMethod("getFaultInfo", new Class[0]);
return getFaultInfo.getReturnType();
Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java Tue May 1 14:49:55 2007
@@ -20,6 +20,7 @@
package org.apache.cxf.service.factory;
import java.lang.reflect.Array;
+import java.lang.reflect.Field;
import java.lang.reflect.GenericArrayType;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
@@ -218,7 +219,6 @@
getDataBinding().initialize(service);
-
boolean overLoaded = containsOverloadedMethod();
boolean isWrapped = isWrapped();
if (isWrapped && !overLoaded) {
@@ -246,7 +246,6 @@
}
}
-
}
private boolean containsOverloadedMethod() {
@@ -403,22 +402,6 @@
p.setConcreteName(p.getName());
}
}
-
- for (FaultInfo fault : uOp.getFaults()) {
- Class expClz = (Class) fault.getProperty(Class.class.getName());
- if (Exception.class.isAssignableFrom(getBeanClass(expClz))) {
- QName name = uOp.getFault(fault.getFaultName()).getName();
- FaultInfo faultInfo = new FaultInfo(name, name, op);
- faultInfo.setProperty("unwrapped.fault.info", fault);
- faultInfo.setProperty(Class.class.getName(), fault.getProperty(Class.class.getName()));
- op.addFault(faultInfo);
-
- createFaultWrappedMessageParts(faultInfo);
- }
- for (MessagePartInfo p : fault.getMessageParts()) {
- p.setConcreteName(p.getName());
- }
- }
} else {
createMessageParts(intf, op, m);
}
@@ -460,18 +443,6 @@
.getOutput(), wraperBeanName);
}
}
-
- if (!op.getFaults().isEmpty()) {
- for (FaultInfo faultInfo : op.getFaults()) {
- Class expClz = (Class) faultInfo.getProperty(Class.class.getName());
- if (Exception.class.isAssignableFrom(getBeanClass(expClz))) {
- createWrappedSchema(serviceInfo,
- faultInfo,
- (FaultInfo) faultInfo.getProperty("unwrapped.fault.info"),
- faultInfo.getFaultName());
- }
- }
- }
}
}
@@ -642,9 +613,18 @@
el.setName(mpi.getName().getLocalPart());
el.setQName(mpi.getName());
- el.setMinOccurs(1);
- el.setMaxOccurs(1);
- el.setNillable(true);
+ if (mpi.getTypeClass() != null
+ && mpi.getTypeClass().isArray()
+ && !Byte.TYPE.equals(mpi.getTypeClass().getComponentType())) {
+ el.setMinOccurs(0);
+ el.setMaxOccurs(Long.MAX_VALUE);
+ } else {
+ el.setMaxOccurs(1);
+ if (mpi.getTypeClass() != null
+ && !mpi.getTypeClass().isPrimitive()) {
+ el.setMinOccurs(0);
+ }
+ }
if (mpi.isElement()) {
el.setRefName(mpi.getElementQName());
@@ -979,27 +959,35 @@
protected FaultInfo addFault(final InterfaceInfo service, final OperationInfo op, Class exClass) {
Class beanClass = getBeanClass(exClass);
+ if (beanClass == null) {
+ return null;
+ }
QName faultName = getFaultName(service, op, exClass, beanClass);
FaultInfo fi = op.addFault(faultName, faultName);
fi.setProperty(Class.class.getName(), exClass);
-
-
- MessagePartInfo mpi = fi.addMessagePart(faultName);
-
- if (Exception.class.isAssignableFrom(beanClass)) {
- beanClass = String.class;
- mpi.setName(new QName(faultName.getNamespaceURI(), "message"));
- mpi.setTypeQName(new QName("http://www.w3.org/2001/XMLSchema", "string"));
- fi.setProperty("unwrapped.fault.info", fi);
- }
+ MessagePartInfo mpi = fi.addMessagePart(new QName(op.getName().getNamespaceURI(), "fault"));
mpi.setTypeClass(beanClass);
-
return fi;
}
+ protected void createFaultForException(Class<?> exClass, FaultInfo fi) {
+ Field fields[] = exClass.getDeclaredFields();
+ for (Field field : fields) {
+ MessagePartInfo mpi = fi.addMessagePart(new QName(fi.getName().getNamespaceURI(),
+ field.getName()));
+ mpi.setProperty(Class.class.getName(), field.getType());
+ }
+ MessagePartInfo mpi = fi.addMessagePart(new QName(fi.getName().getNamespaceURI(),
+ "message"));
+ mpi.setProperty(Class.class.getName(), String.class);
+ }
+
protected Class<?> getBeanClass(Class<?> exClass) {
+ if (java.rmi.RemoteException.class.isAssignableFrom(exClass)) {
+ return null;
+ }
return exClass;
}
Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java Tue May 1 14:49:55 2007
@@ -218,7 +218,10 @@
protected static EndpointInfo getAddressValue(EndpointInfo ei, boolean dp) {
if (dp) {
- ei.setAddress(StringUtils.addDefaultPortIfMissing(ei.getAddress()));
+ String addr = StringUtils.addDefaultPortIfMissing(ei.getAddress());
+ if (addr != null) {
+ ei.setAddress(addr);
+ }
}
return ei;
}
Modified: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/calculator.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/calculator.wsdl?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/calculator.wsdl (original)
+++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/calculator.wsdl Tue May 1 14:49:55 2007
@@ -20,25 +20,25 @@
<wsdl:definitions name="Calculator" targetNamespace="http://docwrapped.classnoanno.fortest.tools.cxf.apache.org/" xmlns:ns1="http://docwrapped.classnoanno.fortest.tools.cxf.apache.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://docwrapped.classnoanno.fortest.tools.cxf.apache.org/" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://docwrapped.classnoanno.fortest.tools.cxf.apache.org/">
-<xsd:element name="add">
+<xsd:element name="AddException">
<xsd:complexType>
<xsd:sequence>
-<xsd:element name="a" nillable="true" type="xsd:int"/>
-<xsd:element name="b" nillable="true" type="xsd:int"/>
+<xsd:element name="message" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
-<xsd:element name="addResponse">
+<xsd:element name="add">
<xsd:complexType>
<xsd:sequence>
-<xsd:element name="return" nillable="true" type="xsd:int"/>
+<xsd:element name="a" type="xsd:int"/>
+<xsd:element name="b" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
-<xsd:element name="AddException">
+<xsd:element name="addResponse">
<xsd:complexType>
<xsd:sequence>
-<xsd:element name="message" nillable="true" type="xsd:string"/>
+<xsd:element name="return" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Modified: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/db.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/db.wsdl?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/db.wsdl (original)
+++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/db.wsdl Tue May 1 14:49:55 2007
@@ -19,7 +19,7 @@
-->
<wsdl:definitions name="Database" targetNamespace="http://cxf523.fortest.tools.cxf.apache.org/" xmlns:ns1="http://cxf523.fortest.tools.cxf.apache.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://cxf523.fortest.tools.cxf.apache.org/" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://cxf523.fortest.tools.cxf.apache.org/">
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://cxf523.fortest.tools.cxf.apache.org/" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://cxf523.fortest.tools.cxf.apache.org/">
<xs:complexType name="operation0ResponseType">
<xs:sequence>
<xs:element minOccurs="0" name="birth" type="xs:dateTime"/>
@@ -30,11 +30,13 @@
<xs:element minOccurs="0" name="species" type="xs:string"/>
</xs:sequence>
</xs:complexType>
-<xs:complexType final="#all" name="operation0ResponseTypeArray">
+<xs:element name="DBServiceFault">
+<xs:complexType>
<xs:sequence>
-<xs:element maxOccurs="unbounded" minOccurs="0" name="item" nillable="true" type="tns:operation0ResponseType"/>
+<xs:element name="message" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
+</xs:element>
<xs:element name="operation0">
<xs:complexType>
<xs:sequence/>
@@ -43,21 +45,7 @@
<xs:element name="operation0Response">
<xs:complexType>
<xs:sequence>
-<xs:element name="return" nillable="true" type="tns:operation0ResponseTypeArray"/>
-</xs:sequence>
-</xs:complexType>
-</xs:element>
-<xs:element name="RemoteException">
-<xs:complexType>
-<xs:sequence>
-<xs:element name="message" nillable="true" type="xs:string"/>
-</xs:sequence>
-</xs:complexType>
-</xs:element>
-<xs:element name="DBServiceFault">
-<xs:complexType>
-<xs:sequence>
-<xs:element name="message" nillable="true" type="xs:string"/>
+<xs:element maxOccurs="unbounded" minOccurs="0" name="return" type="operation0ResponseType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -67,10 +55,6 @@
<wsdl:part name="operation0" element="ns1:operation0">
</wsdl:part>
</wsdl:message>
- <wsdl:message name="RemoteException">
- <wsdl:part name="fault" element="ns1:RemoteException">
- </wsdl:part>
- </wsdl:message>
<wsdl:message name="DBServiceFault">
<wsdl:part name="fault" element="ns1:DBServiceFault">
</wsdl:part>
@@ -87,8 +71,6 @@
</wsdl:output>
<wsdl:fault name="DBServiceFault" message="ns1:DBServiceFault">
</wsdl:fault>
- <wsdl:fault name="RemoteException" message="ns1:RemoteException">
- </wsdl:fault>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="DatabaseSoapBinding" type="ns1:DatabasePortType">
@@ -103,9 +85,6 @@
</wsdl:output>
<wsdl:fault name="DBServiceFault">
<soap:fault name="DBServiceFault" use="literal"/>
- </wsdl:fault>
- <wsdl:fault name="RemoteException">
- <soap:fault name="RemoteException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
Modified: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/hello_soap12.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/hello_soap12.wsdl?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/hello_soap12.wsdl (original)
+++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/hello_soap12.wsdl Tue May 1 14:49:55 2007
@@ -55,7 +55,7 @@
</wsdl:part>
</wsdl:message>
<wsdl:message name="faultDetail">
- <wsdl:part name="faultDetail" element="ns2:faultDetail">
+ <wsdl:part name="fault" element="ns2:faultDetail">
</wsdl:part>
</wsdl:message>
<wsdl:message name="pingMeResponse">
Modified: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/my_hello_soap12.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/my_hello_soap12.wsdl?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/my_hello_soap12.wsdl (original)
+++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/my_hello_soap12.wsdl Tue May 1 14:49:55 2007
@@ -37,7 +37,7 @@
</wsdl:part>
</wsdl:message>
<wsdl:message name="faultDetail">
- <wsdl:part name="faultDetail" element="ns2:faultDetail">
+ <wsdl:part name="fault" element="ns2:faultDetail">
</wsdl:part>
</wsdl:message>
<wsdl:message name="pingMeResponse">
Modified: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_doc_lit_wrapped_localName.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_doc_lit_wrapped_localName.wsdl?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_doc_lit_wrapped_localName.wsdl (original)
+++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_doc_lit_wrapped_localName.wsdl Tue May 1 14:49:55 2007
@@ -39,14 +39,14 @@
<xsd:element name="getPrice">
<xsd:complexType>
<xsd:sequence>
-<xsd:element name="arg0" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="arg0" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getPriceResponse">
<xsd:complexType>
<xsd:sequence>
-<xsd:element name="return" nillable="true" type="xsd:float"/>
+<xsd:element name="return" type="xsd:float"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Modified: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_doc_lit_wrapped_no_wrapperclass.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_doc_lit_wrapped_no_wrapperclass.wsdl?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_doc_lit_wrapped_no_wrapperclass.wsdl (original)
+++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_doc_lit_wrapped_no_wrapperclass.wsdl Tue May 1 14:49:55 2007
@@ -28,7 +28,7 @@
<xsd:element name="sayHiWithoutWrapperClassResponse">
<xsd:complexType>
<xsd:sequence>
-<xsd:element name="return" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="return" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Modified: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_hello_world_doc_lit.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_hello_world_doc_lit.wsdl?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_hello_world_doc_lit.wsdl (original)
+++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_hello_world_doc_lit.wsdl Tue May 1 14:49:55 2007
@@ -121,7 +121,7 @@
</wsdl:input>
<wsdl:output name="pingMeResponse" message="ns1:pingMeResponse">
</wsdl:output>
- <wsdl:fault name="faultDetail" message="ns2:faultDetail">
+ <wsdl:fault name="fault" message="ns2:faultDetail">
</wsdl:fault>
</wsdl:operation>
</wsdl:portType>
Modified: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_holder.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_holder.wsdl?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_holder.wsdl (original)
+++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_holder.wsdl Tue May 1 14:49:55 2007
@@ -23,48 +23,48 @@
<xsd:element name="echo">
<xsd:complexType>
<xsd:sequence>
-<xsd:element name="arg0" nillable="true" type="xsd:string"/>
-<xsd:element name="arg1" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="arg0" type="xsd:string"/>
+<xsd:element minOccurs="0" name="arg1" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="echoResponse">
<xsd:complexType>
<xsd:sequence>
-<xsd:element name="return" nillable="true" type="xsd:string"/>
-<xsd:element name="return1" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="return" type="xsd:string"/>
+<xsd:element minOccurs="0" name="return1" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="echo3">
<xsd:complexType>
<xsd:sequence>
-<xsd:element nillable="true" ref="header"/>
-<xsd:element name="arg1" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" ref="header"/>
+<xsd:element minOccurs="0" name="arg1" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="echo3Response">
<xsd:complexType>
<xsd:sequence>
-<xsd:element name="return" nillable="true" type="xsd:string"/>
-<xsd:element nillable="true" ref="header"/>
+<xsd:element minOccurs="0" name="return" type="xsd:string"/>
+<xsd:element minOccurs="0" ref="header"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="echo2">
<xsd:complexType>
<xsd:sequence>
-<xsd:element name="arg0" nillable="true" type="xsd:string"/>
-<xsd:element name="arg1" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="arg0" type="xsd:string"/>
+<xsd:element minOccurs="0" name="arg1" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="echo2Response">
<xsd:complexType>
<xsd:sequence>
-<xsd:element name="return" nillable="true" type="xsd:string"/>
-<xsd:element name="return1" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="return" type="xsd:string"/>
+<xsd:element minOccurs="0" name="return1" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Modified: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/stock_noanno_wrapped.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/stock_noanno_wrapped.wsdl?view=diff&rev=534252&r1=534251&r2=534252
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/stock_noanno_wrapped.wsdl (original)
+++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/stock_noanno_wrapped.wsdl Tue May 1 14:49:55 2007
@@ -23,14 +23,14 @@
<xsd:element name="getPrice">
<xsd:complexType>
<xsd:sequence>
-<xsd:element name="arg0" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="arg0" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getPriceResponse">
<xsd:complexType>
<xsd:sequence>
-<xsd:element name="return" nillable="true" type="xsd:float"/>
+<xsd:element name="return" type="xsd:float"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>