我正在尝试使用JAXB2和spring-ws2.0.3在glassfish3上创建SOAP服务。我在xml文件配置方面遇到了一些问题,因为有大量关于让这些包的旧版本运行的信息(教程、示例),但关于新版本的信息不多。我已经成功地让客户端/服务器程序通过httpInvokerProxy远程服务工作,但是这些文件中所需的配置量要多得多。基本上,我使用xjcmaven工具从我的xml模式和spring-ws注释@PayloadRoot、@EndPoint和@创建java类ResponsePayload标记我的端点java类中的方法。我只是想确保我的wsdl文件在正确的URL上可用,并且正在接受
我有一个类,我需要将其编码为XML。@XmlRootElement@XmlAccessorType(XmlAccessType.FIELD)publicclassClassToBeMarshalled{publicInterfaceobject;}接口(interface)由许多具体类实现,其中大部分是特定于供应商的,我无法访问其源代码。所以我的问题是:如果我尝试编码该类,JAX-B会提示当前接口(interface)的具体实现在上下文中未知-换句话说,具体类未通过调用提供的JAXBContext.newInstance加载到上下文中当前实现。解决该问题的最常见方法是:1)使用XMLS
在一项服务中,我正在创建一个名为doc的XML文档,我希望用户收到下载该文档的提示,而不必将其保存在本地(比如提示打开或保存文件的提示)。但是,我无法找到应该如何构建将要返回的响应,甚至无法找到@produce的类型。到目前为止我有这个:@GET@Path("/getXML")@Produces(MediaType.APPLICATION_OCTET_STREAM)publicStreamingOutputgetXML(@FormParam("id")intid){UserDBuserDao=newUserDB();entities.Useruserd=userDao.getById(
如果我使用JAXB2un/marshaler...和Xalan2.7.1和Xerces,有没有办法保护Spring-WS应用程序免受XML炸弹的攻击,尽管我不再知道谁依赖于什么了:)....基本上我想在整个应用程序中禁用DTD作为模式语言,如果这可以从应用程序上下文xml文件中完成,那就太好了!我想另一个选择是扩展/实现一些类/接口(interface),并更改一些方法,但我不知道在Spring-WS中哪里首先调用了解析器.... 最佳答案 Java解析器通常具有针对实体扩展攻击之类的内置保护:http://download.o
我想构建一个轻量级的、“数据库”支持的应用程序,其中数据可以存储在XML中——并使用jaxB将数据移入和移出持久状态。但是,我还没有找到任何关于使用XML文件作为实时应用程序数据库的好资源---虽然这是一种非正统的方法,但对于我的特定应用程序来说,它是理想的(小数据,需要用户可编辑,用户足够聪明,可以在不搞砸的情况下编辑XML).....我的顾虑很明显:锁定/交易/等等....除非有人已经解决了这些问题,否则尝试使用XML文件作为实时数据存储可能不是一个好主意。我不需要每分钟100个事务...但是对数据完整性的某种程度的支持当然符合我的最大利益。JaxB的这种应用有先例吗?
有一个webservices类被注释@javax.jws.WebService我需要将原始请求和响应xml记录到数据库中。无论如何我都无法想到/找到我可以做到这一点。请帮忙!! 最佳答案 非常简单。看看here:-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true-Dcom.sun.xml.ws.transport.http.HttpAdapter.dump=true对于更具选择性的日志记录,您可以使用拦截器,检查there.
我正在使用Java和Spring-ws构建Web服务。它工作正常,除了一件事。当我组装要放入SOAP主体中的有效负载时,我想包括CDATA转义字符串。这就是我想要的结果:stuff]]>但是,Spring-WS在添加SOAP信封时似乎篡改了有效负载。这是我得到的结果:<myxml>stuff</myxml>有没有办法确保SpringWS不转义XML字符并遵守CDATA标签?我正在将SpringWS与ApacheCamel一起使用,因此我更喜欢不需要更改/扩展spring-ws类的解决方案。 最佳答案 我已经使用MOXy和
我遇到了嵌套列表的问题,希望有人能提供帮助。我想解码以下XML中的列表。我希望有人能指出我正确的方向,我相信我的注释已经关闭。当我尝试解码MyList数组时,它返回null。我有一个XML:N1T1V1N2T2V2MyList对象:@XmlRootElement(name="myList")@XmlAccessorType(XmlAccessType.FIELD)publicclassMyList{@XmlValueprivateStringname;@XmlValueprivateStringtype;@XmlValueprivateStringversion;根类:@XmlAcce
我的数据模型中有几个多对多关系。我一直在尝试使用JAX=B来获取数据模型的XML表示,但是我已经阅读了一对多关系的内容:@XmlInverseReference是映射的反面所必需的。我相信这是为了使用不同的获取类型(即LAZY和EAGER)。我不确定这个注释究竟是如何工作的。它是否使用反向指针来确保在某些字段上指定数据时不获取数据?我也不知道我是否需要用上面的注释来注释我的多对多关系。这是与自身具有多对多关系的用户类,即。一个用户可以与许多其他用户成为friend。我应该用@XmlInverseReference注释getter吗?@Entity@Table(name="users")
我编写了一个JAX-WS处理程序来将WS-Securityheader添加到我的SOAP客户端的出站消息中:packagecom.soap.client;importjavax.xml.namespace.QName;importjavax.xml.soap.Name;importjavax.xml.soap.SOAPElement;importjavax.xml.soap.SOAPException;importjavax.xml.soap.SOAPFactory;importjavax.xml.ws.handler.MessageContext;importjavax.xml.ws