Hi,
My comment inline
On 2010-11-6, at 上午9:19, KARR, DAVID (ATTSI) wrote:
I have a bindings file that's working fine for generating synchronous
calls. I now need to configure one that I can call async. I looked
up
the doc page that describes how to do this, and I found some issues
with
namespaces to be confusing. The errors I get when I run it confirm
that
I'm confused about it.
I'm using "org.apache.cxf.tools.wsdlto.WSDLToJava"
This is essentially the bindings.xml file I started with:
---------------------------
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
jaxb:version="2.0">
<jaxb:globalBindings>
<jaxb:serializable uid="1"/>
</jaxb:globalBindings>
.. many jaxb:bindings elements elided
<jaxb:bindings schemaLocation="...Request.xsd" node="/xsd:schema">
<jaxb:schemaBindings>
<jaxb:package name="..."/>
</jaxb:schemaBindings>
</jaxb:bindings>
.. many jaxb:bindings elements elided
</jaxb:bindings>
----------------------
This is jaxb databinding file
Again, this has been working fine so far.
In order to implement async for this one request, I added the
following
attribute to the top-level element:
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
I changed one bindings element to this:
----------------
<jaxb:bindings schemaLocation="...Request.xsd" node="/xsd:schema">
<jaxws:enableAsyncMapping>true</jaxws:enableAsyncMapping>
<jaxb:schemaBindings>
<jaxb:package name="..."/>
</jaxb:schemaBindings>
</jaxb:bindings>
----------------
<jaxws:enableAsyncMapping>true</jaxws:enableAsyncMapping>
is jaxws binding file, you shouldn't put it in jaxb:binding element,
this mismatch cause that error.
Here is a example to use jaxws bindings file
<bindings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
wsdlLocation="hello_world_async.wsdl"
xmlns="http://java.sun.com/xml/ns/jaxws">
<bindings node="wsdl:definitions">
<enableAsyncMapping>true</enableAsyncMapping>
</bindings>
</bindings>
You may need take a look at jaxws_async example shipped with kit to
get more details
Freeman
When I run this, I get the following:
-------------------------
WSDLToJava Error: Thrown by JAXB: Unsupported binding namespace
"http://java.sun.com/xml/ns/jaxws". Perhaps you meant
"http://java.sun.com/xml/ns/jaxb/xjc"? at line 13 column 1 of schema
file:...
org.apache.cxf.tools.common.ToolException: Thrown by JAXB: Unsupported
binding namespace "http://java.sun.com/xml/ns/jaxws". Perhaps you
meant
"http://java.sun.com/xml/ns/jaxb/xjc"? at line 13 column 1 of schema
file:...
at
org
.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBBindErrorListener.error
(JAXBBindErrorListener.java:35)
at
com
.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.error(SchemaCompilerIm
pl.java:286)
--------------------------
Curiously, that "file:" path refers to the request schema specified in
the "bindings" element.
Looking at the CXF docs, I'm now confused by what namespace these
elements are supposed to be in.
--
Freeman Fang
------------------------
FuseSource: http://fusesource.com
blog: http://freemanfang.blogspot.com
twitter: http://twitter.com/freemanfang
Apache Servicemix:http://servicemix.apache.org
Apache Cxf: http://cxf.apache.org
Apache Karaf: http://karaf.apache.org
Apache Felix: http://felix.apache.org