小编kul*_*och的帖子

Java 7是包含JAX-WS实现还是仅包含API?

我被告知Java 7应该包含JAX-WS,这样我就不需要像Apache CXF那样的库.但是,官方文件说:

此版本包含用于XML处理的Java API(JAXP)1.4.5,支持用于XML绑定的Java体系结构(JAXB)2.2.3,并支持用于XML Web服务的Java API(JAX-WS)2.2.4.

此外,JAX-WS上Eclipse页面说明了使用Apache CXF,Sun Metro或Apache Axis等实现.我可以在JAX-WS上找到的每个示例/教程都使用像CXF或Metro这样的库集.

我在Eclipse中有一个项目,它在一个带有javax.jws.WebService注释的类上调用"Endpoint.publish(...)".下面引用的WSDL文件驻留在Eclipse之外.这个项目运行(作为"Java应用程序")与Apache CXF库包括.一旦我删除它们(以及Eclipse对Apache CXF的引用),它就会崩溃并出现以下异常:

com.sun.xml.internal.ws.server.ServerRtException: [failed to localize] cannot.load.wsdl(http://localhost:8081/wsdl/csw.wsdl)
    at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.getPrimaryWsdl(EndpointImpl.java:313)
Run Code Online (Sandbox Code Playgroud)

所以我要么做错了,要么Apache正在提供JDK本身只有API的东西的实现.请指出哪种情况,以及相关内容的通常链接.

java cxf jax-ws

13
推荐指数
1
解决办法
1万
查看次数

有什么方法可以加速JAXB编组?

有没有办法加快对JAXB 的调用Marshaller.marshal(Object, OutputStream)

我正在研究的项目是使用JAXB [un]用相当大的XML模式编组对象.通话someJaxbMarshaller.marshal(results, out)需要2秒钟才能完成.其他一切(JPA提取,空间过滤,相当多的其他逻辑)只需要大约1秒钟.因此,JAXB的使用使我的请求响应时间增加了三倍.我正在缓存JAXBContext和Marshaller对象,以尽可能加快速度.只有实际的编组才会让我失望.有什么建议?

我正在使用与JAX-WS 2.2.3捆绑在一起的JAXB 2.2.3u1.较新的版本似乎破坏了多个东西,所以我们被锁定到那个版本的JAXB(覆盖了包含Java的JAX-WS 2.2.5,它使用了JAXB 2.2.4u1 - 我们无法使用它,因为它会引发加载).我们也在JDK 1.3.0_30上,这是在Eclipse Indigo中运行的.我看到了使用Woodstox的建议,但JAX-WS 2.2.3已经包含了它.我尝试用最新版本交换它,但是减慢了编组速度约0.2秒.删除Woodstox与使用JAX-WS附带的版本具有完全相同的性能.NullPointerException

支持正在编组的对象的模式大小约为5 MB.JAXB生成的实际XML文档大小为117 KB.

xml schema jaxb marshalling

5
推荐指数
0
解决办法
2082
查看次数

标签 统计

cxf ×1

java ×1

jax-ws ×1

jaxb ×1

marshalling ×1

schema ×1

xml ×1