JAXB在Tomcat上的AXIS2 WebService应用程序中的名称空间转换7
问题描述:
我已经使用jaxb 2.2.6的xjc从xsd文件生成一组类。 通过编辑“package-info.java”我已将不同的名称空间关联到前缀值。 因此,我创建了一个测试类,其中包含Unmarshal xml文件,编辑一些信息并以xml格式编组对象。 一切正如魅力和javax.xml.bind.Marshaller对象正确地匹配package-info中定义的名称空间和前缀。JAXB在Tomcat上的AXIS2 WebService应用程序中的名称空间转换7
当我使用axis2在tomcat7上将该应用程序部署在同一台机器上并调用执行上述代码的ws方法javax.xml.bind.Marshaller使用默认命名空间(ns1,ns2 ..)创建一个xml文件。 ..)。
,我用的package-info.java是这样的:
@javax.xml.bind.annotation.XmlSchema(
namespace = "....",
xmlns = {
@XmlNs(namespaceURI = "....", prefix = "myprefix"),
@XmlNs(namespaceURI = "...", prefix = "myprefix2"),
},
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package ....;
import javax.xml.bind.annotation.XmlNs;
这是一件正确的输出(当我执行的代码为“Java应用”获得此输出) :
.....
<ContactInformation>
<rm:ContactDescription>ASD</rm:ContactDescription>
<rm:ContactRole>ASD</rm:ContactRole>
<rm:ContactLocation/>
<rm:AdditionalContactInformation>
<xnl:PartyName>
<xnl:PersonName>
<xnl:NameElement xnl:ElementType="FirstName">ASD</xnl:NameElement>
<xnl:NameElement xnl:ElementType="LastName">ASD</xnl:NameElement>
</xnl:PersonName>
<xnl:OrganisationName>
<xnl:NameElement>ASD</xnl:NameElement>
</xnl:OrganisationName>
</xnl:PartyName>
</rm:AdditionalContactInformation>
</ContactInformation>
......
这是一块错误输出的(当我执行 “的Axis2/Tomcat7 WS应用程序” 中的代码获得该输出):
.....
<ContactInformation>
<ns2:ContactDescription>ASD</ns2:ContactDescription>
<ns2:ContactRole>ASD</ns2:ContactRole>
<ns2:ContactLocation/>
<ns2:AdditionalContactInformation>
<ns7:PartyName>
<ns7:PersonName>
<ns7:NameElement ns7:ElementType="FirstName">ASD</ns7:NameElement>
<ns7:NameElement ns7:ElementType="LastName">ASD</ns7:NameElement>
</ns7:PersonName>
<ns7:OrganisationName>
<ns7:NameElement>ASD</ns7:NameElement>
</ns7:OrganisationName>
</ns7:PartyName>
</ns2:AdditionalContactInformation>
</ContactInformation>
......
对于每种情况,都存在一个package-info.java,其中声明了名称空间转换。
我该如何解决这个问题?
问题是,如果应用程序在axis2/tomcat7上下文中作为“Java应用程序”或“Web Service应用程序”运行,则使用jaxb创建的对象进行编组的操作将有所不同。 在第二种情况下,名称空间转换不起作用。 – f0rb1dd3n403 2013-04-23 08:23:11
@ f0rb1dd3n403 - 你可以发布你得到的两个不同的输出吗? – 2013-04-23 11:48:10
我已经编辑添加不同输出的帖子。 – f0rb1dd3n403 2013-04-23 14:11:56