You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by luca76 <lu...@gmail.com> on 2014/02/26 11:27:35 UTC

problem generation client whith @XmlMimeType("application/octet-stream")

Hello, I have problem whith @XmlMimeType("application/octet-stream").
If i generated a server (java2wsdl) whith the following code :

package demo.mtom.server;
import javax.activation.DataHandler;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlMimeType;
import javax.xml.ws.Holder;
@WebService(targetNamespace = "http://server.mtom.demo/",  portName =
"TestMtomImplPort",  serviceName = "TestMtomImplService")
public class TestMtomImpl{

    public void testMtom(@WebParam(name = "attachinfo")
@XmlMimeType("application/octet-stream") Holder<DataHandler> attachinfo) { 
    }

The following wsdl is generated:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="TestMtomImplService"
targetNamespace="http://server.mtom.demo/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://server.mtom.demo/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
  <wsdl:types>
    <xs:schema elementFormDefault="unqualified"
targetNamespace="http://server.mtom.demo/" version="1.0"
xmlns:tns="http://server.mtom.demo/"
xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://www.w3.org/2005/05/xmlmime"/>
  <xs:element name="testMtom" type="tns:testMtom"/>
<xs:element name="testMtomResponse" type="tns:testMtomResponse"/>
<xs:complexType name="testMtom">
    <xs:sequence>
      <xs:element minOccurs="0" name="attachinfo" type="xs:base64Binary"
xmime:expectedContentTypes="application/octet-stream"/>
    </xs:sequence>
  </xs:complexType>
<xs:complexType name="testMtomResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="attachinfo" type="xs:base64Binary"
xmime:expectedContentTypes="application/octet-stream"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
  </wsdl:types>
  <wsdl:message name="testMtomResponse">
    <wsdl:part name="parameters" element="tns:testMtomResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="testMtom">
    <wsdl:part name="parameters" element="tns:testMtom">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="TestMtomImpl">
    <wsdl:operation name="testMtom">
      <wsdl:input name="testMtom" message="tns:testMtom">
    </wsdl:input>
      <wsdl:output name="testMtomResponse" message="tns:testMtomResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="TestMtomImplServiceSoapBinding"
type="tns:TestMtomImpl">
    <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="testMtom">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="testMtom">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="testMtomResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="TestMtomImplService">
    <wsdl:port name="TestMtomImplPort"
binding="tns:TestMtomImplServiceSoapBinding">
      <soap:address
location="http://localhost:8080/TestAttachmentServer3/services/TestMtomImplPort"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

If i generate the client using wsdl2java I obtain the error

WSDLToJava Error: java.lang.NullPointerException

org.apache.cxf.tools.common.ToolException: java.lang.NullPointerException
	at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:420)
	at
org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)
	at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)
	at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)
	at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:184)
Caused by: java.lang.NullPointerException
	at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding$3.resolveResource(JAXBDataBinding.java:985)
	at
com.sun.org.apache.xerces.internal.util.DOMEntityResolverWrapper.resolveEntity(DOMEntityResolverWrapper.java:109)
	at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.resolveEntity(XMLEntityManager.java:1070)
	at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.resolveDocument(XMLSchemaLoader.java:659)
	at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.resolveSchema(XSDHandler.java:2052)
	at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.constructTrees(XSDHandler.java:1008)
	at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:620)
	at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:616)
	at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:574)
	at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:540)
	at
com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:255)
	at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:627)
	at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.validateSchema(JAXBDataBinding.java:995)
	at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.addSchemas(JAXBDataBinding.java:721)
	at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:443)
	at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:714)
	at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:270)
	at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:164)
	at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:412)
	... 4 more
	
*    so i tried to remove the tag:
    <xs:import namespace="http://www.w3.org/2005/05/xmlmime"/>	
    into wsdl file and it works.*
	
*	This import is automatically generated into wsdl file, is it possibile
generate a wsdl (java2wsdl) whithout the tag: <xs:import
namespace="http://www.w3.org/2005/05/xmlmime"/>??*

Thanks!	
	






--
View this message in context: http://cxf.547215.n5.nabble.com/problem-generation-client-whith-XmlMimeType-application-octet-stream-tp5740508.html
Sent from the cxf-user mailing list archive at Nabble.com.

Re: problem generation client whith @XmlMimeType("application/octet-stream")

Posted by Conficio <Ka...@Conficio.com>.
I found out this only happens in the WSDL validation phase, so disabling the
validation does help to resolve this issue for me. 



--
View this message in context: http://cxf.547215.n5.nabble.com/problem-generation-client-whith-XmlMimeType-application-octet-stream-tp5740508p5743062.html
Sent from the cxf-user mailing list archive at Nabble.com.