You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Dan Powell <da...@abakas.com> on 2010/08/12 21:13:00 UTC

CXF-SE with JAX-WS Binding Files

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)


Re: CXF-SE with JAX-WS Binding Files

Posted by Geert Schuring <ge...@schuring.eu>.
Dan,

My mail program warns me that your messages have been tampered with. It says 
the signature is invalid.

Greets,
Geert.

--------------------------------------------------
From: "Dan Powell" <da...@abakas.com>
Sent: Tuesday, August 17, 2010 10:52 PM
To: <us...@servicemix.apache.org>
Subject: Re: CXF-SE with JAX-WS Binding Files

> 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.
>
>



>
>
> 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 ä¸Så^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
>>
>
> 

Re: CXF-SE with JAX-WS Binding Files

Posted by Dan Powell <da...@abakas.com>.
I've attached these to the Jira ticket.

Dan

On Aug 23, 2010, at 4:32 AM, Freeman Fang wrote:

> 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
> 


Re: CXF-SE with JAX-WS Binding Files

Posted by Freeman Fang <fr...@gmail.com>.
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


Re: CXF-SE with JAX-WS Binding Files

Posted by Dan Powell <da...@abakas.com>.
#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
> 


Re: CXF-SE with JAX-WS Binding Files

Posted by Freeman Fang <fr...@gmail.com>.
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


Re: CXF-SE with JAX-WS Binding Files

Posted by Dan Powell <da...@abakas.com>.
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
>> 
> 


Re: CXF-SE with JAX-WS Binding Files

Posted by Dan Powell <da...@abakas.com>.
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.


Re: CXF-SE with JAX-WS Binding Files

Posted by Freeman Fang <fr...@gmail.com>.
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


Re: CXF-SE with JAX-WS Binding Files

Posted by Dan Powell <da...@abakas.com>.
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


Re: CXF-SE with JAX-WS Binding Files

Posted by Freeman Fang <fr...@gmail.com>.
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