Hi,
I'd like to see your testcase which you said working in standalone cxf
2.2.9 also.
And I don't think this is a compile/runtime version mismatch issue,
the version is exactly same as I check. I guess there's something
wrong from your cxf-code-gen configuration or your jaxb binding file.
Could you also append the pom you specify to use jaxb-xjc/jaxb-impl
2.1.3? Could you tell the difference of auto-generated java code
between jaxb-xjc/jaxb-impl 2.1.3 and jaxb-xjc/jaxb-impl 2.1.12?(the
one we used for Servicemix 3.3.2) As you said one works but another
one doesn't, so the generated java code should be different.
Freeman
On 2010-8-23, at 上午9:47, Dan Powell wrote:
#SMXCOMP-790
Thanks!
Dan
On Aug 22, 2010, at 9:35 PM, Freeman Fang wrote:
Hi,
Thanks for the latest info, that would be very helpful for us to
finally fix it, would you please create a jira to track this issue?
Freeman
On 2010-8-23, at 上午9:01, Dan Powell wrote:
A little bit farther along - I've found that if I specify version
jaxb-xjc and jaxb-impl version 2.1.3 as plugin dependencies for
the cxf-codegen-plugin then it deploys. I've tried building a
servicemix-cxf-bc based on the 2010.01 tag but with 2.2.1.1 XJC
but still get the same IllegalStateException. I'm pretty sure
it's some kind of compile vs runtime library conflict, but I'm
still not sure which one (perhaps some other dependency pulled in
by the different versions of XJC?).
Dan
On Aug 17, 2010, at 4:52 PM, Dan Powell wrote:
Yes, it starts up with standalone CXF version 2.2.9.
I've stripped down the WSDL to just three types in the extension
hierarchy, the lower two mixed, the upper two abstract.
Thanks for looking into this.
<jaxb-bindings-test.tar.gz>
Dan
On Aug 17, 2010, at 4:05 AM, Freeman Fang wrote:
Hi,
Did you ever try to start this endpoint with standalone cxf(not
deploy it into servicemix)? Is it ok with standalone cxf?
If you can verify this issue is servicemix cxf se specific,
please simplify your testcase, as you said the schema is too
complex and I get over 2400 classes from the schema, a minimum
testcase would be great.
Thanks
Freeman
On 2010-8-14, at 下午11:49, Dan Powell wrote:
I've stripped it down to just the single SU. If you remove the
defaultBinding.xml the service assembly deploys without error,
but with it the below IllegalStateException is thrown.
The schema is obviously more complex than necessary for this
test case, but is the original schema I encountered the issue
with. I can pare it down further to the minimum necessary type
hierarchy to reproduce the issue if you need.
Information on this specific binding customization, if
relevant, can be found at http://blogs.sun.com/mgrebac/entry/handling_extended_mixed_content_in
.
I'm using the following Java/xjc versions on Linux x86_64:
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)
xjc version "JAXB 2.1.10 in JDK 6"
JavaTM Architecture for XML Binding(JAXB) Reference
Implementation, (build JAXB 2.1.10 in JDK 6)
Thanks!
Dan
<jaxb-bindings-test.tar.gz>
On Aug 13, 2010, at 4:27 AM, Freeman Fang wrote:
Hi,
Could you append a working testcase, not only the binary jar/
zip, including the src which I can build and deploy? Also
please tell me the smx version you are working with.
A working testcase is more helpful in this case.
Freeman
On 2010-8-13, at 上午3:13, Dan Powell wrote:
I need to use a binding file to customize the generated
classes for my services (specifically
generateMixedExtensions). The cxf-codegen-plugin correctly
observes the binding file and generates the correct classes,
but the cxf-se component throws an Exception deploying the
SU. Without the binding file, my service deploys properly. I
suspect it may have something to do with a version mismatch
of the JAXB or XJC libraries at compile vs runtime creating
some kind of a ClassNotFoundException processing the
@XmlMixed annotation or something similar. I have tried
explicitly including the jaxb-impl library in my SU but that
didn't help. Any ideas on how to resolve this or at least
how to get a more helpful error message?
Thanks!
java.lang.Exception: <?xml version="1.0" encoding="UTF-8"?>
<jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message
" version="1.0">
<jbi-task-result>
<frmwk-task-result>
<frmwk-task-result-details>
<task-result-details>
<task-id>deploy</task-id>
<task-result>FAILED</task-result>
<message-type>ERROR</message-type>
</task-result-details>
</frmwk-task-result-details>
</frmwk-task-result>
<component-task-result xmlns="http://java.sun.com/xml/ns/jbi/management-message
">
<component-name>servicemix-cxf-se</component-name>
<component-task-result-details>
<task-result-details>
<task-id>deploy</task-id>
<task-result>FAILED</task-result>
<message-type>ERROR</message-type>
<task-status-msg>
<msg-loc-info>
<loc-token/>
<loc-message>Could not deploy xbean service unit</loc-message>
</msg-loc-info>
</task-status-msg>
<exception-info>
<nesting-level>1</nesting-level>
<msg-loc-info>
<loc-token/>
<loc-message>java.lang.IllegalStateException: start tag
has already been written</loc-message>
<stack-trace><![CDATA[javax.xml.ws.WebServiceException:
java.lang.IllegalStateException: start tag has already been
written
at
org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:
275)
at
org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:
209)
at
org
.apache
.servicemix.cxfse.CxfSeEndpoint.validate(CxfSeEndpoint.java:
355)
at
org
.apache
.servicemix
.common.AbstractDeployer.validate(AbstractDeployer.java:58)
at
org
.apache
.servicemix
.common
.xbean.BaseXBeanDeployer.validate(BaseXBeanDeployer.java:55)
at
org
.apache
.servicemix
.common
.xbean
.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:97)
at
org
.apache
.servicemix
.common
.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:
88)
at
org
.apache
.servicemix
.common
.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69)
at
org
.apache
.servicemix
.jbi
.framework
.DeploymentService
.deployServiceAssembly(DeploymentService.java:520)
at
org
.apache
.servicemix
.jbi
.framework
.AutoDeploymentService
.checkPendingSAs(AutoDeploymentService.java:473)
at
org
.apache
.servicemix
.jbi
.framework
.AutoDeploymentService
.updateComponent(AutoDeploymentService.java:289)
at
org
.apache
.servicemix
.jbi
.framework
.AutoDeploymentService
.updateArchive(AutoDeploymentService.java:251)
at
org
.apache
.servicemix
.jbi
.framework
.AutoDeploymentService
.monitorDirectory(AutoDeploymentService.java:658)
at
org
.apache.servicemix.jbi.framework.AutoDeploymentService.access
$800(AutoDeploymentService.java:63)
at org.apache.servicemix.jbi.framework.AutoDeploymentService
$1.run(AutoDeploymentService.java:622)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Caused by: java.lang.IllegalStateException: start tag has
already been written
at
com
.sun
.xml
.txw2.ContainerElement.checkStartTag(ContainerElement.java:160)
at
com
.sun
.xml.txw2.ContainerElement.addAttribute(ContainerElement.java:
149)
at
com
.sun.xml.txw2.ContainerElement.invoke(ContainerElement.java:
129)
at $Proxy65.mixed(Unknown Source)
at com.sun.xml.bind.v2.schemagen.XmlSchemaGenerator
$Namespace.writeClass(XmlSchemaGenerator.java:925)
at com.sun.xml.bind.v2.schemagen.XmlSchemaGenerator
$Namespace.writeTo(XmlSchemaGenerator.java:668)
at com.sun.xml.bind.v2.schemagen.XmlSchemaGenerator
$Namespace.access$700(XmlSchemaGenerator.java:493)
at
com
.sun
.xml
.bind
.v2
.schemagen.XmlSchemaGenerator.write(XmlSchemaGenerator.java:
475)
at
com
.sun
.xml
.bind
.v2
.runtime.JAXBContextImpl.generateSchema(JAXBContextImpl.java:
822)
at
org
.apache.cxf.jaxb.JAXBUtils.generateJaxbSchemas(JAXBUtils.java:
699)
at
org
.apache
.cxf
.jaxb
.JAXBDataBinding.generateJaxbSchemas(JAXBDataBinding.java:445)
at
org
.apache
.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:372)
at
org
.apache
.cxf
.service
.factory
.ReflectionServiceFactoryBean
.buildServiceFromClass(ReflectionServiceFactoryBean.java:467)
at
org
.apache
.cxf
.jaxws
.support
.JaxWsServiceFactoryBean
.buildServiceFromClass(JaxWsServiceFactoryBean.java:550)
at
org
.apache
.cxf
.service
.factory
.ReflectionServiceFactoryBean
.initializeServiceModel(ReflectionServiceFactoryBean.java:530)
at
org
.apache
.cxf
.service
.factory
.ReflectionServiceFactoryBean
.create(ReflectionServiceFactoryBean.java:278)
at
org
.apache
.cxf
.jaxws
.support
.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:
178)
at
org
.apache
.cxf
.frontend
.AbstractWSDLBasedEndpointFactory
.createEndpoint(AbstractWSDLBasedEndpointFactory.java:100)
at
org
.apache
.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:
105)
at
org
.apache
.cxf
.jaxws
.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:167)
at
org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:
346)
at
org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:
259)
... 16 more
]]></stack-trace>
</msg-loc-info>
</exception-info>
</task-result-details>
</component-task-result-details>
</component-task-result>
<component-task-result xmlns="http://java.sun.com/xml/ns/jbi/management-message
">
<component-name>servicemix-cxf-bc</component-name>
<component-task-result-details>
<task-result-details>
<task-id>deploy</task-id>
<task-result>SUCCESS</task-result>
</task-result-details>
</component-task-result-details>
</component-task-result>
</jbi-task-result>
</jbi-task>
at
org
.apache
.servicemix
.jbi
.framework.ManagementSupport.failure(ManagementSupport.java:
125)
at
org
.apache
.servicemix
.jbi
.framework.ManagementSupport.failure(ManagementSupport.java:
111)
at
org
.apache
.servicemix
.jbi
.framework
.DeploymentService
.deployServiceAssembly(DeploymentService.java:555)
at
org
.apache
.servicemix
.jbi
.framework
.AutoDeploymentService
.checkPendingSAs(AutoDeploymentService.java:473)
at
org
.apache
.servicemix
.jbi
.framework
.AutoDeploymentService
.updateComponent(AutoDeploymentService.java:289)
at
org
.apache
.servicemix
.jbi
.framework
.AutoDeploymentService
.updateArchive(AutoDeploymentService.java:251)
at
org
.apache
.servicemix
.jbi
.framework
.AutoDeploymentService
.monitorDirectory(AutoDeploymentService.java:658)
at
org
.apache.servicemix.jbi.framework.AutoDeploymentService.access
$800(AutoDeploymentService.java:63)
at org.apache.servicemix.jbi.framework.AutoDeploymentService
$1.run(AutoDeploymentService.java:622)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com
Apache Servicemix:http://servicemix.apache.org
Apache Cxf: http://cxf.apache.org
Apache Karaf: http://karaf.apache.org
Apache Felix: http://felix.apache.org
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com
Apache Servicemix:http://servicemix.apache.org
Apache Cxf: http://cxf.apache.org
Apache Karaf: http://karaf.apache.org
Apache Felix: http://felix.apache.org
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com
Apache Servicemix:http://servicemix.apache.org
Apache Cxf: http://cxf.apache.org
Apache Karaf: http://karaf.apache.org
Apache Felix: http://felix.apache.org
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com
Apache Servicemix:http://servicemix.apache.org
Apache Cxf: http://cxf.apache.org
Apache Karaf: http://karaf.apache.org
Apache Felix: http://felix.apache.org