Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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 如何使用即席web服务(非SOAP、无模式XML)?_Java_Xml_Web Services_Schemaless - Fatal编程技术网

Java 如何使用即席web服务(非SOAP、无模式XML)?

Java 如何使用即席web服务(非SOAP、无模式XML)?,java,xml,web-services,schemaless,Java,Xml,Web Services,Schemaless,我需要编写到多个外部web服务的集成。其中一些是SOAP(有WSDL),一些是非常特别的HTTP(s),通过基本身份验证或URL(!)中的参数进行身份验证,像XML这样的自然语言不能很好地映射到域类 目前,我已经使用SpringWeb3.0RestTemplate完成了spike集成,并使用JAXB2(Jaxb2Marshaller)进行了绑定。需要某种绑定,因为域类需要比XML更干净 这很管用,但感觉不太好。显然,这部分是因为服务是如何构建的。我遇到的一个小问题是命名restemplate,因

我需要编写到多个外部web服务的集成。其中一些是SOAP(有WSDL),一些是非常特别的HTTP(s),通过基本身份验证或URL(!)中的参数进行身份验证,像XML这样的自然语言不能很好地映射到域类

目前,我已经使用SpringWeb3.0
RestTemplate
完成了spike集成,并使用JAXB2(
Jaxb2Marshaller
)进行了绑定。需要某种绑定,因为域类需要比XML更干净

这很管用,但感觉不太好。显然,这部分是因为服务是如何构建的。我遇到的一个小问题是命名
restemplate
,因为服务与REST无关。这是我可以忍受的。不过JAXB2感觉有点沉重


所以,我在寻找其他的选择。思想?我希望有一个简单的解决方案(所以RestTemplate很好),不要太有进取心。

如果我理解正确,您有一个应用程序必须使用不同的技术调用各种外部(web)服务。首先想到的是要有一些中级水平。虽然这可能像en-ESB解决方案一样复杂,但我猜这不是您想要的

例如,您可以通过在其顶部具有接口“Consumer”的类层次结构来实现这个中间级别。要实现的方法:doConsume()等等

如果你深入研究,你可能会有机会使用一些设计模式,比如策略或模板。记住要积极主动,试着问几次“如果……怎么办”(比如:如果他们需要我消费另一项服务怎么办?等等)

如果JAXB感觉太重,那么可以找到其他API:


这要看情况而定,哪一个更好。如果您遇到任何问题,我相信您可以在这里找到帮助(以及比我有更多实际操作经验的人;-)

虽然您的一些服务可能是无模式XML,但它们可能仍然有一个文档良好的API。至少在web服务服务器端,Spring人员似乎正在推动的技术之一是使用XPath/XQuery仅从请求中检索您真正需要的信息。我知道这可能只是您解决方案的一部分,但我不确定在这种情况下,一个特定的绑定框架是否能够满足您的所有需求。

在您的用例中,JAXB的哪一部分感觉很重?我是说性能方面-我知道JAXB并不是最快的绑定框架。如果我错了,请纠正我。判断性能的唯一方法是评测你的应用程序。JAXB(JSR-222)是JavaEE技术(JAX-WS和JAX-RS)的默认绑定层,并且有一些重要的用户。有几种实现(Metro、EclipseLink MOXy、ApacheJAXME)可用。我会谨慎地完全根据意见进行转换。注意:我负责MOXy的实施。你关于测量vs谣言的观点绝对正确。在这个项目中,JAXB可能已经足够了。现在,我快速阅读了有关JAXB性能问题的内容,似乎主要是抱怨创建JAXB上下文的成本,这应该相对容易处理。JAXBContext是一个线程安全的对象,只能创建一次。此对象的优点是元数据是预计算的,并且编组/解编组可以更快。其他一些XML绑定产品会动态初始化,这会减慢编组/解编的速度是的,就我的目的而言,ESB是过度的。我正在寻找一个轻量级的解决方案。我也不想问什么模式之类的。无论如何谢谢你!关于你提到的API,我也研究过了。但是,我在项目中已经有了AxIS2,但甚至没有考虑到用户可以使用Studialess集成,所以我会再看一看。谢谢XPath技巧。可能与我的目的无关,但不管怎样,最好知道。