On Jun 12, 2008, at 11:51 AM, Wolf, Chris (IT) wrote:
Dan,
I just ran a live StAX factory configuration test; my web app is
configured as
follows:
javax.xml.stream.XMLEventFactory:
com.sun.xml.stream.events.ZephyrEventFactory
javax.xml.stream.XMLInputFactory:
com.sun.xml.stream.ZephyrParserFactory
javax.xml.stream.XMLOutputFactory:
com.sun.xml.stream.ZephyrWriterFactory
This is identical to the previous April snapshot, which does not
exhibit
the
wsdl output problem that I get with CXF-2.1 release.
That's because the April snapshot didn't use StAX to write the wsdl.
It used the javax.xml.transform stuff to write the DOM. However, that
had a problem in that if any recent version of xalan was on the
classpath, the resulting wsdl/schemas were not valid. Thus, we
changed to using the Stax stuff to write out the wsdl. For the
most part, we always use woodstox as our Stax implementation. Thus,
that was what was tested for 2.1. For 2.1.1-SNAPSHOTs, we've done
some limitted testing with the Sun parser and did fix this issue with
that parser.
Thus, I would suggest one of:
1) Use a 2.1.1-snapshot for the time being. (actually, I'd really
like this if you could test this over the next couple days. I'm
hoping to do the final 2.1.1 build really early next week so having
some confirmation that it's really fixed would be great)
2) Figure out how to get woodstox properly configured as the parser.
I really don't know how to do that other than to find suns jar and
remove it.
Dan
Thanks,
-Chris
-----Original Message-----
From: Wolf, Chris (IT)
Sent: Thursday, June 12, 2008 10:15 AM
To: [email protected]
Subject: RE: Cannot request WSDL with CXF-2.1 deployed to Tomcat
What do I have to do to get it working? I did not have this issue
with
the 2.1 snapshot from April. I verified that the wstx-asl-3.2.4.jar
is
in the build path and in WEB-INF/lib.
My JAXP settings are as follows:
javax.xml.parsers.DocumentBuilderFactory:
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
javax.xml.parsers.SAXParserFactory:
org.apache.xerces.jaxp.SAXParserFactoryImpl
javax.xml.transform.TransformerFactory:
org.apache.xalan.processor.TransformerFactoryImpl
These settings are unchanged from the April 2.1-snapshot, which works
fine.
They are the defaults as set in the META-INF/services of each of the
respective jar files.
In any case, these settings don't appear to have anything to do with
streaming parsers, which, unfortunately, I am not that familiar with.
It looks the the META-INF/services inside "wstx-asl-3.2.4.jar" is
configuring:
javax.xml.stream.XMLEventFactory: com.ctc.wstx.stax.WstxEventFactory
javax.xml.stream.XMLInputFactory: com.ctc.wstx.stax.WstxInputFactory
javax.xml.stream.XMLOutputFactory:
com.ctc.wstx.stax.WstxOutputFactory
What else would I have to do to force StaxUtils to use woodstox?
Thanks,
-Chris
-----Original Message-----
From: Daniel Kulp [mailto:[EMAIL PROTECTED]
Sent: Wednesday, June 11, 2008 7:27 AM
To: [email protected]
Subject: Re: Cannot request WSDL with CXF-2.1 deployed to Tomcat
This seems to be picking up the Sun JAXP parser and not woodstox.
This is fixed in the latest 2.1.1 snapshots (to work with either
parser). For 2.1 release, you will probably need woodstox instead
of Sun's.
Dan
On Jun 10, 2008, at 6:37 PM, Wolf, Chris (IT) wrote:
I am not getting this exception:
javax.xml.stream.XMLStreamException: NamespaceURI cannot be null
If anyone can help, that would be great.
I recently upgraded from an April snapshot to CXF-2.1, and now I
get a
stack trace whenever I do an HTTP GET for the WSDL from my published
endpoint:
WARNING: org.apache.cxf.transport.http.WSDLQueryHandler Exception
caught writing response.
org.apache.cxf.transport.http.WSDLQueryException: Exception occurred
while trying to process
http://localhost:8080/wsstest/services/secadmin?wsdl
at
org
.apache.cxf.transport.http.WSDLQueryHandler.writeResponse(WSDLQueryHa
ndler.java:229)
at
org
.apache.cxf.transport.servlet.ServletController.invoke(ServletControl
ler.java:137)
at
org
.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFSe
rvlet.java:170)
[...]
Caused by: javax.xml.stream.XMLStreamException: NamespaceURI cannot
be
null
at
com
.sun.xml.stream.writers.XMLStreamWriterImpl.writeAttribute(XMLStreamW
riterImpl.java:620)
at
org.apache.cxf.staxutils.StaxUtils.writeElement(StaxUtils.java:520)
at
org.apache.cxf.staxutils.StaxUtils.writeElement(StaxUtils.java:440)
at
org.apache.cxf.staxutils.StaxUtils.writeDocument(StaxUtils.java:421)
at
org.apache.cxf.staxutils.StaxUtils.writeDocument(StaxUtils.java:411)
at
org.apache.cxf.staxutils.StaxUtils.writeNode(StaxUtils.java:560)
at
org
.apache.cxf.transport.http.WSDLQueryHandler.writeResponse(WSDLQueryHa
ndler.java:226)
I traced the problem to org.apache.cxf.staxutils.StaxUtils.java,
lines
484-488:
} else {
// System.out.println("Calling writeStartElement for local
name : "
// + localName + " URI: " + ns + " Prefix :" + prefix);
writer.writeStartElement(prefix, localName, ns);
}
The values for the "writeStartElement" are:
prefix = "wsdl"
localname = "definitions"
ns = "http://schemas.xmlsoap.org/wsdl/"
The start element looks like:
<wsdl:definitions name="SecAdmin"
targetNamespace="urn:secadmin.svcscore.ibd.ms.com"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="urn:secadmin.svcscore.ibd.ms.com"
xmlns:x1="urn:secadmin.svcscore.ibd.ms.com/types"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
--------------------------------------------------------
NOTICE: If received in error, please destroy and notify sender.
Sender does not intend to waive confidentiality or privilege. Use of
this email is prohibited when received in error.
---
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog
--------------------------------------------------------
NOTICE: If received in error, please destroy and notify sender. Sender
does not intend to waive confidentiality or privilege. Use of this
email
is prohibited when received in error.
--------------------------------------------------------
NOTICE: If received in error, please destroy and notify sender.
Sender does not intend to waive confidentiality or privilege. Use of
this email is prohibited when received in error.
---
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog