Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAX-WS-如何从服务器端代码创建xs:any类型的元素?_Java_Xml_Web Services_Xsd_Jax Ws - Fatal编程技术网

Java JAX-WS-如何从服务器端代码创建xs:any类型的元素?

Java JAX-WS-如何从服务器端代码创建xs:any类型的元素?,java,xml,web-services,xsd,jax-ws,Java,Xml,Web Services,Xsd,Jax Ws,我已经为我的webservice创建了一个XML模式,ServerResponse元素包含xs:any类型的无限元素序列 我正在从我的模式生成类(使用xjc),因此该序列将转换为生成的ServerResponse类中的List ServerResponse类有一个方法getAny(),它返回此列表并允许我对其进行更改。。但我不知道该怎么做 假设我想向响应中任何对象的序列中添加几个元素,以便响应的XML将包含这些元素 <someelement1>sometext</someele

我已经为我的webservice创建了一个XML模式,ServerResponse元素包含xs:any类型的无限元素序列

我正在从我的模式生成类(使用xjc),因此该序列将转换为生成的ServerResponse类中的List

ServerResponse类有一个方法getAny(),它返回此列表并允许我对其进行更改。。但我不知道该怎么做

假设我想向响应中任何对象的序列中添加几个元素,以便响应的XML将包含这些元素

<someelement1>sometext</someelement1>
<someelement2>somemoretext</someelement2>
但是,这不起作用,因为它会抛出一个错误,指出“java.lang.object不能强制转换为org.w3.dom.Element”

谁能帮我做这个?我相信有一个非常简单的解决方案

感谢您的帮助:)

无法实现,因此此强制转换将始终失败

您可以使用从中获取的创建
元素
实例

下面是一些JAXB代码示例:

@XmlRootElement
公务舱什么的{
任何私人物品;
@XmlAnyElement
公共对象getAny(){return any;}
public void setAny(Object any){this.any=any;}
公共静态void main(字符串[]args)抛出DomeException,
ParserConfiguration异常{
元素foo=DocumentBuilderFactory.newInstance()
.newDocumentBuilder()
.newDocument()
.createElement(“foo”);
任何事物a=新事物();
a、 setAny(foo);
marshal(a,System.out);
}
}

我还没有在JAX-WS下尝试过这一点(JAX-WS使用JAXB绑定)-如果它不起作用,我会开始深入研究包。

注意:我的意思是列出生成的getAny()方法的类型!嗨,谢谢你的回复。我要到星期一才能试试,但到时候我会试试的,如果有用的话会告诉你的!嗨,麦克道尔,我试过你的建议,但不幸的是没有任何运气。由JAXB.marshal call in System.out打印的XML看起来是正确的文本,但我在响应消息中得到了以下错误:Marshalling error:org.XML.sax.SAXParseException:cvc complex type.2.4.a:发现以元素“someelement”开头的无效内容。其中一个“{WC[###other:”}'是预期的…我花了几个小时玩它,还尝试使用JAXBElement,但也遇到了一个非常类似的错误…你还有其他想法吗?再次感谢,在JAXB.marshal调用的打印输出中,有一个xml声明..类似的东西出现在文本xml之前。我不知道知道这是否与问题有关,但我想我会在万一中提及它!(还有一件事需要提及:我还尝试设置xs:any元素的processContent=“skip”属性。但也遇到了与上面相同的错误)
Object element = new Object();
((Element)element).setNodeValue("someelement1");
((Element)element).setTextContent("sometext");
requestobject.getAny().add(element);