I ran an update and did a clean build but now one of the unit tests for
the helloworld-ws-sdo sample is failing with a bunch of
IllegalAnnotationsExceptions such as:
org.osoa.sca.ServiceRuntimeException:
org.apache.tuscany.sca.databinding.TransformationException:
org.apache.tuscany.sca.databinding.TransformationException: co
m.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of
IllegalAnnotationExceptions
helloworld.Name is an interface, and JAXB can't handle interfaces.
this problem is related to the following location:
at helloworld.Name
at protected helloworld.Name
helloworld.jaxws.GetGreetings.arg0
at helloworld.jaxws.GetGreetings
helloworld.Name does not have a no-arg default constructor.
this problem is related to the following location:
at helloworld.Name
at protected helloworld.Name
helloworld.jaxws.GetGreetings.arg0
at helloworld.jaxws.GetGreetings
at
org.apache.tuscany.sca.core.invocation.RuntimeWireInvoker.invoke(Runtime
WireInvoker.java:138)
at
org.apache.tuscany.sca.core.invocation.RuntimeWireInvoker.invoke(Runtime
WireInvoker.java:104)
at
org.apache.tuscany.sca.core.invocation.RuntimeWireInvoker.invoke(Runtime
WireInvoker.java:98)
at
org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.invoke(RuntimeWireI
mpl.java:159)
at
org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceProvider.invokeTarge
t(Axis2ServiceProvider.java:754)
at
org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceInOutSyncMessageRece
iver.invokeBusinessLogic(Axis2ServiceInOutSyncMessageReceiver.java:70)
at
org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusine
ssLogic(AbstractInOutSyncMessageReceiver.java:42)
at
org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessa
geReceiver.java:100)
at
org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostReques
t(HTTPTransportUtils.java:275)
at
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:175)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:2
63)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:84
4)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(
Http11Protocol.java:584)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.j
ava:354)
at org.apache.tuscany.sca.core.work.Work.run(Work.java:63)
at
org.apache.tuscany.sca.core.work.ThreadPoolWorkManager$DecoratingWork.ru
n(ThreadPoolWorkManager.java:215)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
r.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
va:675)
at java.lang.Thread.run(Thread.java:595)
-----Original Message-----
From: Raymond Feng [mailto:[email protected]]
Sent: Tuesday, March 17, 2009 21:46
To: tuscany-user
Subject: Re: Problem with generated WSDLs
Hi,
I checked in a fix under r755474 in the 1.x branch. Please try.
http://svn.apache.org/viewvc?rev=755474&view=rev
Thanks,
Raymond
--------------------------------------------------
From: "Raymond Feng" <[email protected]>
Sent: Friday, March 13, 2009 9:19 PM
To: <[email protected]>
Subject: Re: Problem with generated WSDLs
> Hi,
>
> I found the issue (the child elements under the doc-lit-wrapper are
> missing the type namespace) and worked out a fix. I'll have to do some
> more tests before I checked it in.
>
> Thanks,
> Raymond
> --------------------------------------------------
> From: "Phillips, Chad" <[email protected]>
> Sent: Friday, March 13, 2009 6:02 PM
> To: <[email protected]>
> Subject: RE: Problem with generated WSDLs
>
>> Revisiting this issue (TUSCANY-2853).
>>
>> For clarity, the test server/client I'm referring to are in the test
>> program, now test2.zip, attached to TUSCANY-2853.
>>
>> Here is what I did today:
>>
>> * Checked out and built the 1.x branch (currently 1.5-SNAPSHOT)
>> * Added the supplied package-info.java to src/test/server
>> * Recompiled the test code and started the test server
>> * Retrieved the WSDL via a web browser
>> * Reran the test client to generate the WS client using Axis
>>
>> This results in the same error that I was seeing on 1.4:
>>
>> [java] java.io.IOException: Type data is referenced but not
>> defined.
>> [java] at
>>
org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(SymbolTab
>> le.java:665)
>> [java] at
>>
org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:545)
>> [java] at
>>
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:5
>> 18)
>> [java] at
>>
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:4
>> 95)
>> [java] at
>> org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
>> [java] at java.lang.Thread.run(Thread.java:595)
>>
>> I then changed the namespace from http://test/server to
>> http://server.test in the package-info.java, and reran the test which
>> resulted in the same error as shown above. The test2.zip contains
that
>> namespace change as well.
>>
>> Is there something else that I need to do to implement the
workaround?
>>
>> -----Original Message-----
>> From: Raymond Feng [mailto:[email protected]]
>> Sent: Tuesday, February 17, 2009 15:43
>> To: [email protected]
>> Subject: Re: Problem with generated WSDLs
>>
>> FYI: the fix is checked into 1.x branch:
>> http://svn.apache.org/viewvc?rev=745299&view=rev
>>
>> Thanks,
>> Raymond
>>
>> --------------------------------------------------
>> From: "Raymond Feng" <[email protected]>
>> Sent: Tuesday, February 17, 2009 3:17 PM
>> To: <[email protected]>
>> Subject: Re: Problem with generated WSDLs
>>
>>> I'll fix that issue. We were trying to create a package-based
>> JAXBContext
>>> if there is a package-info with @XmlSchema. It will fail if the
>>> ObjectFactory.class is not present for the package.
>>>
>>> Thanks,
>>> Raymond
>>>
>>> --------------------------------------------------
>>> From: "Phillips, Chad" <[email protected]>
>>> Sent: Tuesday, February 17, 2009 2:58 PM
>>> To: <[email protected]>
>>> Subject: RE: Problem with generated WSDLs
>>>
>>>> Hi Raymond,
>>>>
>>>> Thanks for taking the time to look into this. I added the supplied
>>>> package-info.java to my test/server src dir and recompiled; this
now
>>>> generates a new error after starting up the SCA runtime (see
below).
>> Do
>>>> I need to generate ObjectFactory using a JAXB tool or
create/generate
>>>> jaxb.index?
>>>>
>>>> [java] SEVERE: Exception thrown was:
>>>> org.osoa.sca.ServiceRuntimeException: javax.xml.bind.JAXBException:
>>>> "test.server" doesnt contain ObjectFactory.class o
>>>> r jaxb.index
>>>> [java] Exception in thread "main"
>>>> org.osoa.sca.ServiceRuntimeException: javax.xml.bind.JAXBException:
>>>> "test.server" doesnt contain ObjectFactory.class or j
>>>> axb.index
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.databinding.jaxb.JAXBTypeHelper.getSchemaDefiniti
>>>> ons(JAXBTypeHelper.java:241)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.binding.ws.wsdlgen.Interface2WSDLGenerator.genera
>>>> te(Interface2WSDLGenerator.java:308)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator.createWSD
>>>> LInterfaceContract(BindingWSDLGenerator.java:307)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator.createWSD
>>>> LDocument(BindingWSDLGenerator.java:205)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator.generateW
>>>> SDL(BindingWSDLGenerator.java:163)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.binding.ws.xml.BindingBuilderImpl.build(BindingBu
>>>> ilderImpl.java:48)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.assembly.builder.impl.ComponentServiceBindingBuil
>>>>
derImpl.buildServiceBindings(ComponentServiceBindingBuilderImpl.java:
>>>> 68)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.assembly.builder.impl.ComponentServiceBindingBuil
>>>> derImpl.build(ComponentServiceBindingBuilderImpl.java:48)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl.build(
>>>> CompositeBuilderImpl.java:204)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.node.impl.RuntimeBootStrapper.buildComposite(Runt
>>>> imeBootStrapper.java:244)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.node.impl.NodeImpl.configureNode(NodeImpl.java:57
>>>> 2)
>>>> [java] at
>>>> org.apache.tuscany.sca.node.impl.NodeImpl.<init>(NodeImpl.java:167)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.node.impl.NodeFactoryImpl.createSCANodeFromClassL
>>>> oader(NodeFactoryImpl.java:37)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultS
>>>> CADomain.java:175)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.<init>(Defaul
>>>> tSCADomain.java:97)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADoma
>>>> in.java:182)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.jav
>>>> a:63)
>>>> [java] at test.server.Server.main(Server.java:9)
>>>> [java] Caused by: javax.xml.bind.JAXBException: "test.server"
>>>> doesnt contain ObjectFactory.class or jaxb.index
>>>> [java] at
>>>>
>>
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:183
>>>> )
>>>> [java] at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>> Method)
>>>> [java] at
>>>>
>>
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
>>>> a:39)
>>>> [java] at
>>>>
>>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
>>>> Impl.java:25)
>>>> [java] at java.lang.reflect.Method.invoke(Method.java:585)
>>>> [java] at
>>>> javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:133)
>>>> [java] at
>>>> javax.xml.bind.ContextFinder.find(ContextFinder.java:286)
>>>> [java] at
>>>> javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372)
>>>> [java] at
>>>> javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:337)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.databinding.jaxb.JAXBContextCache.getJAXBContext(
>>>> JAXBContextCache.java:242)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.databinding.jaxb.JAXBContextCache.getJAXBContext(
>>>> JAXBContextCache.java:284)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBCont
>>>> ext(JAXBContextHelper.java:181)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBCont
>>>> ext(JAXBContextHelper.java:213)
>>>> [java] at
>>>>
>>
org.apache.tuscany.sca.databinding.jaxb.JAXBTypeHelper.getSchemaDefiniti
>>>> ons(JAXBTypeHelper.java:236)
>>>> [java] ... 17 more
>>>>
>>>> -----Original Message-----
>>>> From: Raymond Feng [mailto:[email protected]]
>>>> Sent: Tuesday, February 17, 2009 14:43
>>>> To: [email protected]
>>>> Subject: Re: Problem with generated WSDLs
>>>>
>>>> Hi,
>>>>
>>>> The issue is a result of JAXBContext.generateSchema(). JAXB doesn't
>> try
>>>> to
>>>> derive the target namespace from the java package name and it use
""
>> as
>>>> the
>>>> default unless the package is annotated with @XmlSchema.
>>>>
>>>> Adding a test/server/package-info.java with the following contents
>> allow
>>>> you
>>>> to provide the namespace.
>>>>
>>>>
@javax.xml.bind.annotation.XmlSchema(namespace="http://test/server")
>>>> package test.server;
>>>>
>>>> Then the generated schema looks like:
>>>>
>>>> <?xml version="1.0" standalone="yes"?>
>>>> <xs:schema version="1.0" targetNamespace="http://test/server"
>>>> xmlns:tns="http://test/server"
>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>>>
>>>> <xs:complexType name="data">
>>>> <xs:sequence>
>>>> <xs:element name="a" type="tns:data2" nillable="true"
>>>> minOccurs="0"
>>>> maxOccurs="unbounded"/>
>>>> <xs:element name="b" type="xs:int"/>
>>>> <xs:element name="c" type="xs:float"/>
>>>> </xs:sequence>
>>>> </xs:complexType>
>>>>
>>>> <xs:complexType name="data2">
>>>> <xs:sequence>
>>>> <xs:element name="asdf" type="xs:string" nillable="true"
>>>> minOccurs="0"
>>>> maxOccurs="unbounded"/>
>>>> </xs:sequence>
>>>> </xs:complexType>
>>>> </xs:schema>
>>>>
>>>> Can you try to add package-info.java? I agree it is not nice at all
>> if
>>>> the
>>>> default value (no namespace) breaks the generated WSDL/XSD.
>>>>
>>>> Thanks,
>>>> Raymond
>>>>
>>>>
>>>> --------------------------------------------------
>>>> From: "Phillips, Chad" <[email protected]>
>>>> Sent: Tuesday, February 17, 2009 11:13 AM
>>>> To: <[email protected]>
>>>> Subject: Problem with generated WSDLs
>>>>
>>>>> Hi,
>>>>>
>>>>> I'm having a problem when using the WSDLs generated via Tuscany
SCA
>>>> Java
>>>>> 1.4 for services using the WS binding. Specifically, I can't
>> generate
>>>> a
>>>>> WS client using Axis, Axis2, JAX-WS, or XMLBeans with the Tuscany
>>>>> generated WSDL. The issue only seems to show up when the input
>>>>> parameter for a service contains a complex type. I've documented
>> the
>>>>> issue (including code to reproduce the error) in
>>>>> https://issues.apache.org/jira/browse/TUSCANY-2853
>>>>>
>>>>> The problem seems to be related to how namespaces are being
created
>>>>> and/or associated with the complex types in the WSDL. Has anyone
>> else
>>>>> encountered this issue and if so have you found a workaround to
the
>>>>> problem?
>>>>>
>>>>> - Chad Phillips
>>>