You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2006/10/25 07:40:26 UTC
svn commit: r467567 - in /incubator/cxf/trunk/rt:
core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
Author: ffang
Date: Tue Oct 24 22:40:25 2006
New Revision: 467567
URL: http://svn.apache.org/viewvc?view=rev&rev=467567
Log:
[CXF-157] Runtime error processing anonymous ref in WSDL during Service.create()
[CXF-158] ClassCastException in JaxWsServiceFactoryBean.initalizeClassInfo
Modified:
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java?view=diff&rev=467567&r1=467566&r2=467567
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java Tue Oct 24 22:40:25 2006
@@ -409,7 +409,9 @@
XmlSchemaComplexType xsct = null;
if (inputEl.getSchemaType() instanceof XmlSchemaComplexType) {
xsct = (XmlSchemaComplexType)inputEl.getSchemaType();
- if (hasAttributes(xsct) || !isWrappableSequence(xsct, unwrappedInput)) {
+ if (hasAttributes(xsct) || !isWrappableSequence(xsct,
+ inputEl.getQName().getNamespaceURI(),
+ unwrappedInput)) {
passedRule = false;
}
} else {
@@ -425,7 +427,9 @@
if (outputEl != null && outputEl.getSchemaType() instanceof XmlSchemaComplexType) {
xsct = (XmlSchemaComplexType)outputEl.getSchemaType();
- if (hasAttributes(xsct) || !isWrappableSequence(xsct, unwrappedOutput)) {
+ if (hasAttributes(xsct) || !isWrappableSequence(xsct,
+ outputEl.getQName().getNamespaceURI(),
+ unwrappedOutput)) {
passedRule = false;
}
} else {
@@ -455,7 +459,9 @@
return false;
}
- private boolean isWrappableSequence(XmlSchemaComplexType type, MessageInfo wrapper) {
+ private boolean isWrappableSequence(XmlSchemaComplexType type,
+ String namespaceURI,
+ MessageInfo wrapper) {
if (type.getParticle() instanceof XmlSchemaSequence) {
XmlSchemaSequence seq = (XmlSchemaSequence)type.getParticle();
XmlSchemaObjectCollection items = seq.getItems();
@@ -467,7 +473,12 @@
}
XmlSchemaElement el = (XmlSchemaElement)o;
- MessagePartInfo mpi = wrapper.addMessagePart(el.getQName());
+ // Handle anonymous ref
+ QName elQname = el.getQName();
+ if (elQname == null) {
+ elQname = new QName(namespaceURI, el.getRefName().getLocalPart());
+ }
+ MessagePartInfo mpi = wrapper.addMessagePart(elQname);
mpi.setTypeQName(el.getSchemaTypeName());
}
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=467567&r1=467566&r2=467567
==============================================================================
--- 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 Oct 24 22:40:25 2006
@@ -246,7 +246,8 @@
if (((Class) selected.getReturnType()).getName().equals("void")) {
// to avoid <element name="..."><complexType/></element> in
// output message part
- if (paraType.length > inPartCount + outIdx) {
+ if (paraType.length > inPartCount + outIdx
+ && paraType[inPartCount + outIdx] instanceof ParameterizedType) {
ParameterizedType paramType = (ParameterizedType) paraType[inPartCount + outIdx];
Class rawClass = getHolderClass(paramType, inPartCount + outIdx);
mpiOut.setProperty(Class.class.getName(), rawClass);