Bharath,
Dug into this a bit. There is absolutely nothing we can do about
this as this is down deep in the JAXB code. You can log a bug or
enhancement request with the jaxb folks possibly.
Looking into the jaxb code for this case, it's pretty aweful. :-
( When serializing the Source, rather than streaming it from the
input stream, it SAX parses it and rewrites it into a new
ByteArrayOutputStream to ensure that it's in the proper charset, or
UTF-8 if a charset isn't specified in the expectedContentTypes. A
charset is always thus outputted on the wire. If the charset is
on the wire, JAXB creates a Reader for it, not a writer.
I'm not sure if a jaxb customization to change the mapping from Source
to DataHandler would work. Might be something to try. Otherwise,
all you can do is cast it to a
com.sun.xml.bind.v2.util.DataSourceSource and call the getDataSource()
method on there and get the stream from that.
Dan
On Jul 16, 2008, at 5:17 PM, Bharath Thippireddy wrote:
Hi Dan,
Looks like the problem with the mtom client is when we try to get the
attachment out as a stream from the Source Object.The getInputStream()
method on the Holder<Source> always returns a null object,while the
getReader()works.
This Does not work.
StreamSource dataSource = (StreamSource)resultSource.value;
int c;
while ((c =
streamSource.getInputStream().read())
!= -1)
{
ps.print((char)c);
}
This works...
StreamSource dataSource = (StreamSource)resultSource.value;
int c;
while ((c = dataSource.getReader().read()) !=
-1)
{
ps.print((char)c);
}
This is already reported in the following JIRA,which is updated as
resolved.But it is still not working.
https://issues.apache.org/jira/browse/CXF-1313
thanks and regards,
Bharath
Daniel Kulp <[EMAIL PROTECTED]> wrote on 07/10/2008 03:20:15 PM:
I haven't really had time to try and create a test case for this.
The few system tests we have in our test suite are working fine so
I'm
not really sure where to look. If you could create a test case that
shows the problem, that would be a huge help in trying to diagnose
what is happening.
Dan
On Jul 10, 2008, at 11:16 AM, Bharath Thippireddy wrote:
Can you please let us know if you have any updates on the mtom
issue
below?
thanks and regards,
bharath
Bharath Thippireddy/BC/DE/Primavera wrote on 07/03/2008 12:41:06 PM:
Thanks Dan.
MTOM Client Problem
I can see the MTOM attachment coming out when i try reading it in
the interceptor i wrote.But i do not see it in the end client.Do
you
think this is similar to the issue we had earlier with attachements
on the client?
The second issue was a problem with conflicting jars on dependent
projects,which is now resolved.
thanks and regards,
Bharath
Daniel Kulp <[EMAIL PROTECTED]> wrote on 07/01/2008 04:16:20 PM:
Any chance you can send a small sample project for the first one?
I'd like to see the generated interface (with all the annotations)
(and wsdl if possible). I can then debug that better. Also,
do
you have an asm jar on the classpath?
The second issue is VERY strange. It looks like some sort of
woodstox version conflict or something. I'd check the classpath
for
any duplicate jars.
Dan
On Jun 26, 2008, at 10:53 AM, Bharath Thippireddy wrote:
We have migrated to CXF 2.1.1 from 2.1 and we are seeing issues.
1)binding.setMTOMEnabled does not work on the jaxws client.
We see the mtom attachment being sent back from the server but
the
Source
object on the client returns a null InputStream.
2)JAXWS Client Problem.We see the following exception on the
client.
Jun 26, 2008 9:50:54 AM
org.apache.cxf.bus.spring.BusApplicationContext
getConfigResources
INFO: No cxf.xml configuration file detected, relying on
defaults.
Jun 26, 2008 9:50:55 AM
org.apache.cxf.bus.spring.SpringBusFactory
createBus
WARNING: Failed to create application context.
org.springframework.beans.factory.BeanDefinitionStoreException:
Unexpected
exception parsing XML document from class path resource
[META-INF/cxf/cxf.xml]; nested exception is
java.lang.IllegalAccessError:
tried to access method
com.ctc.wstx.stax.WstxInputFactory.createPrivateConfig()Lcom/ctc/
wstx/api/ReaderConfig;
from class com.ctc.wstx.sax.WstxSAXParser
at
org
.springframework
.beans
.factory
.xml
.XmlBeanDefinitionReader
.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:405)
at
org
.apache
.cxf
.bus
.spring
.ControlledValidationXmlBeanDefinitionReader
.doLoadBeanDefinitions
(ControlledValidationXmlBeanDefinitionReader.java:108)
at
org
.springframework
.beans
.factory
.xml
.XmlBeanDefinitionReader
.loadBeanDefinitions(XmlBeanDefinitionReader.java:327)
at
org
.apache
.cxf
.bus
.spring
.ControlledValidationXmlBeanDefinitionReader
.loadBeanDefinitions
(ControlledValidationXmlBeanDefinitionReader.java:128)
at
org
.springframework
.beans
.factory
.xml
.XmlBeanDefinitionReader
.loadBeanDefinitions(XmlBeanDefinitionReader.java:295)
at
org
.springframework
.beans
.factory
.support
.AbstractBeanDefinitionReader
.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at
org
.springframework
.context
.support
.AbstractXmlApplicationContext
.loadBeanDefinitions(AbstractXmlApplicationContext.java:108)
at
org
.apache
.cxf
.bus
.spring
.BusApplicationContext
.loadBeanDefinitions(BusApplicationContext.java:256)
at
org
.springframework
.context
.support
.AbstractRefreshableApplicationContext
.refreshBeanFactory(AbstractRefreshableApplicationContext.java:
97)
at
org
.springframework
.context
.support
.AbstractApplicationContext
.obtainFreshBeanFactory(AbstractApplicationContext.java:411)
at
org
.springframework
.context
.support
.AbstractApplicationContext
.refresh(AbstractApplicationContext.java:
338)
at
org
.apache
.cxf
.bus
.spring.BusApplicationContext.<init>(BusApplicationContext.java:
87)
at
org
.apache
.cxf
.bus
.spring
.SpringBusFactory.createApplicationContext(SpringBusFactory.java:
103)
at
org
.apache
.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
94)
at
org
.apache
.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
87)
at
org
.apache
.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
65)
at
org
.apache
.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
54)
at
org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:70)
at
org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:
107)
at
org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:98)
at
org
.apache
.cxf
.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:
64)
at javax.xml.ws.Service.<init>(Service.java:36)
at
com
.primavera
.ws
.p6
.authentication
.AuthenticationService.<init>(AuthenticationService.java:47)
at
com
.primavera
.wsclient
.JAXWSClientTestCase.callWSLogin(JAXWSClientTestCase.java:
1372)
at
com
.primavera
.wsclient.JAXWSClientTestCase.wsLogin(JAXWSClientTestCase.java:
1359)
at
com
.primavera
.wsclient.JAXWSClientTestCase.runWSLogin(JAXWSClientTestCase.java:
788)
at
com
.primavera
.wsclient
.JAXWSClientTestCase.handleAction(JAXWSClientTestCase.java:
514)
at
com
.primavera
.intgtest
.api.StandardAPIBaseTestCase.run(StandardAPIBaseTestCase.java:
538)
at
com
.primavera.intgtest.api.APIBaseTestCase.run(APIBaseTestCase.java:
106)
at
com
.primavera.intgtest.api.APIBaseTestCase.run(APIBaseTestCase.java:
39)
at
com
.primavera
.intgtest.Simulator.executeSingleTestPass(Simulator.java:
3062)
at
com.primavera.intgtest.Simulator.executeTestCase(Simulator.java:
2913)
at com.primavera.intgtest.TestCaseRunner.run(Simulator.java:
3534)
Caused by: java.lang.IllegalAccessError: tried to access method
com.ctc.wstx.stax.WstxInputFactory.createPrivateConfig()Lcom/ctc/
wstx/api/ReaderConfig;
from class com.ctc.wstx.sax.WstxSAXParser
at com.ctc.wstx.sax.WstxSAXParser.<init>(WstxSAXParser.java:
128)
at
com
.ctc
.wstx
.sax.WstxSAXParserFactory.newSAXParser(WstxSAXParserFactory.java:
105)
at
org
.apache
.cxf
.bus
.spring.TunedDocumentLoader.loadDocument(TunedDocumentLoader.java:
106)
at
org
.springframework
.beans
.factory
.xml
.XmlBeanDefinitionReader
.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:381)
... 32 more
Exception Caught: java.lang.RuntimeException
(org.springframework.beans.factory.BeanDefinitionStoreException:
Unexpected exception parsing XML document from class path
resource
[META-INF/cxf/cxf.xml]; nested exception is
java.lang.IllegalAccessError:
tried to access method
com.ctc.wstx.stax.WstxInputFactory.createPrivateConfig()Lcom/ctc/
wstx/api/ReaderConfig;
from class com.ctc.wstx.sax.WstxSAXParser)
java.lang.RuntimeException:
org.springframework.beans.factory.BeanDefinitionStoreException:
Unexpected
exception parsing XML document from class path resource
[META-INF/cxf/cxf.xml]; nested exception is
java.lang.IllegalAccessError:
tried to access method
com.ctc.wstx.stax.WstxInputFactory.createPrivateConfig()Lcom/ctc/
wstx/api/ReaderConfig;
from class com.ctc.wstx.sax.WstxSAXParser
at
org
.apache
.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
97)
at
org
.apache
.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
87)
at
org
.apache
.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:
65)
Can you please throw some light on these as we have to swith to
SAAJ
if
MTOM doesnt work.
thanks and regards,
Bharath
---
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog
---
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog
---
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog