标签: jax-ws

Metro vs Java的JAX-WS?

Java的JAX-WS和Metro有什么区别?它们是两个不同的JAX-WS实现相同吗?

根据我的研究,JAX-WS已经是JDK 6的一部分.但是,JAX-WS没有附带标准的JDK包,所以我找了一个Java EE jar.但是,似乎Oracle不承载已编译的Java EE jar,而是提供Glassfish作为Java EE服务器.

我能够在Glassfish上运行我的Web服务.Glassfish使用什么JAX-WS实现?由于它是托管在Oracle上的,我假设它使用Java的JAX-WS实现,它应该是JDK 1.6的一部分?我的假设是正确的吗?此外,要运行基于JAX-WS的Web服务,我需要下载JAX-WS jar.我找到了Metro.但在它的页面上,我看到地铁的链接是Glassfish的子链接.所以我现在很困惑.Glassfish使用Metro吗?或者Glassfish使用Java的JAX-WS?

Metro和Java的JAX-WS是一样的吗?

java tomcat glassfish java-metro-framework jax-ws

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

JAX-WS - 映射故障的例外

我正在使用JAX WS来公开WebService.此服务的某些操作可能会生成异常.不是内部服务器异常,而是依赖于操作调用的输入参数的异常.

如果我指定我的操作抛出自定义异常,如下所示:

@WebService
@SOAPBinding(style = Style.RPC, use = Use.LITERAL)
public class MyServiceEndpointImpl implements MyServiceEndpoint {

    @WebMethod
    public void throwsException throws InvalidInputException;
}
Run Code Online (Sandbox Code Playgroud)

运行应用程序时,我最终得到以下堆栈跟踪:

 com.sun.xml.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class com.mypackage.ws.services.jaxws.InvalidInputExceptionBean is not found. Have you run APT to generate them?
    at com.sun.xml.ws.model.RuntimeModeler.getClass(RuntimeModeler.java:285)
    at com.sun.xml.ws.model.RuntimeModeler.processExceptions(RuntimeModeler.java:1006)
    at com.sun.xml.ws.model.RuntimeModeler.processRpcMethod(RuntimeModeler.java:969)
    at com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:546)
    at com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:370)
    at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:256)
    at com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:322)
    at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:188)
    at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:467)
    at org.jvnet.jax_ws_commons.spring.SpringService.getObject(SpringService.java:333)
    at org.jvnet.jax_ws_commons.spring.SpringService.getObject(SpringService.java:45)
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport$1.run(FactoryBeanRegistrySupport.java:121)
Run Code Online (Sandbox Code Playgroud)

添加@XmlRootEntityInvalidInputException不解决问题.

如果这不是报告Web服务故障的推荐方法,那么有更好的方法吗?我的异常是应该继承RuntimeException并依赖于传输进行错误处理(即,所有内容最终都将包含在SOAPException中)?我希望有类似Spring-WS的东西SoapFaultAnnotationExceptionResolver.是否有类似的东西可用于JAX-WS?

java web-services jax-ws

27
推荐指数
2
解决办法
4万
查看次数

如何从javax.ws.rs.core.Response响应中检索JSON响应?

我正在向API请求并获取响应状态代码200.

api的json响应包括响应.

import javax.ws.rs.core.Response;

Response response = webclient.post(SomeReqString);
Run Code Online (Sandbox Code Playgroud)

如何json从Web客户端响应中将响应检索为字符串?

java web-services webclient jax-rs jax-ws

27
推荐指数
2
解决办法
5万
查看次数

?wsdl和?singleWsdl参数之间有什么区别?

我的消息传递提供程序为我提供了两种不同的WSDL.

http://my.amazonaws.com:8000/webservice/?wsdl
http://my.amazonaws.com:8000/webservice/?singleWsdl
Run Code Online (Sandbox Code Playgroud)

第一个是嵌入式 WSDL.不能使用它来生成WSDL2java包,也不能使用JAX-WS来创建连接.

第二个是单个 WSDL.它可以使用CXF 3.0的WSDL2java生成Java包,并可以使用JAX-WS创建连接.它工作得很好.

请告诉我这两种WSDL之间的区别.

wsdl axis2 web-services cxf jax-ws

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

发生错误时使用JAX-WS跟踪XML请求/响应

如果有任何错误,我想记录原始肥皂邮件请求,我正在使用JAX-WS.任何帮助将不胜感激.

只有在响应中发生异常时,是否有一种简单的方法(也就是说:不使用代理)来访问使用JAX-WS参考实现(JDK 1.5中包含的那个)更好的Web服务的原始请求/响应XML?我想记录原始的SOAP reuest,以便我可以在以后的任何webservice客户端测试它

java jax-ws

24
推荐指数
4
解决办法
5万
查看次数

tns出现在Web服务架构中

我正在使用JAX-WS来运行一些示例Web服务.发布Web服务后,当我输入WSDL URL时,我可以看到WSDL文档.WSDL文档引用的Schema文档如下所示:

<xs:schema version="1.0" targetNamespace="http://ts.ch01/">
<xs:element name="getTimeAsElapsed" type="tns:getTimeAsElapsed"/>
<xs:element name="getTimeAsElapsedResponse" type="tns:getTimeAsElapsedResponse"/>
<xs:element name="getTimeAsString" type="tns:getTimeAsString"/>
<xs:element name="getTimeAsStringResponse" type="tns:getTimeAsStringResponse"/>
?
<xs:complexType name="getTimeAsString">
<xs:sequence/>
</xs:complexType>
?
<xs:complexType name="getTimeAsStringResponse">
?
<xs:sequence>
<xs:element name="return" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
?
<xs:complexType name="getTimeAsElapsed">
<xs:sequence/>
</xs:complexType>
?
<xs:complexType name="getTimeAsElapsedResponse">
?
<xs:sequence>
<xs:element name="return" type="xs:long"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么'tns'出现在元素声明中?例如:

<xs:element name="getTimeAsElapsed" type="TNS:getTimeAsElapsed"/>

我没有在架构文档中看到'tns'被声明为名称空间前缀,架构文档只是以

<xs:schema version="1.0" targetNamespace="http://ts.ch01/">
Run Code Online (Sandbox Code Playgroud)

那么为什么'tns'在引用其他元素时出现?这是JAX-WS生成的XML模式的默认行为吗?

xml xsd wsdl web-services jax-ws

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

WSDL文件上的JAX-WS错误:"解析组件的错误:schema'"

错误

我在Java项目中使用wsimport来生成三个SOAP Web服务的源代码.前两个工作正常:我使用JAX-WS Maven插件来获取WSDL文件并生成相应的Java源文件.

一个Web服务失败; 我收到以下错误:

[jaxws:wsimport]
Processing: /home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl
jaxws:wsimport args: [-s, /home/me/NetBeansProjects/Admin/AdminWeb/target/generated-sources/jaxws-wsimport, -d, /home/me/NetBeansProjects/Admin/AdminWeb/target/classes, -verbose, -catalog, /home/me/NetBeansProjects/Admin/AdminWeb/src/jax-ws-catalog.xml, -wsdllocation, http://erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx?WSDL, -target, 2.0, -extension, -Xnocompile, /home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl]
parsing WSDL...


src-resolve.4.2: Error resolving component 's:schema'. It was detected that 's:schema' is in namespace 'http://www.w3.org/2001/XMLSchema', but components from this namespace are not referenceable from schema document 'file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl#types?schema1'. If this is the incorrect namespace, perhaps the prefix of 's:schema' needs to be changed. If this is the correct namespace, then an appropriate 'import' tag should …
Run Code Online (Sandbox Code Playgroud)

java wsdl jax-ws jaxb wsimport

24
推荐指数
2
解决办法
3万
查看次数

RESTful webservice:如何在java中设置头文件以接受Access-Control-Allow-Origin允许的XMLHttpRequest

我有一个RESTful webservice,它将返回字符串,它是用Java(JAX-WS)编写的.我的问题是当我使用以下URL向该webservice发送请求时:

http://localhost:8080/project/webservices/getlist/getListCustomers

在控制台中,它给出了以下错误消息:

XMLHttpRequest无法加载url Access-Control-Allow-Origin不允许使用origin localhost

我该如何处理这个问题?

Java代码:

@GET
@Path("/getsample")
public Response getMsg() { 
    String output = "Jersey say : " ;   
    return Response.status(200).entity(output).build();
}
Run Code Online (Sandbox Code Playgroud)

java rest jax-rs jax-ws cors

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

如何使用Java JAX-WS添加SOAP Header

使用JAX-WS的典型SOAP客户端请求可能是

FooService service = new FooService();
FooPort port = service.getFooPort();
FooPayload payload = new FooPayload();
payload.setHatSize(3);
payload.setAlias("The Hat");
...
port.processRequest(payload);
Run Code Online (Sandbox Code Playgroud)

这会生成类似的HTTP请求内容

<?xml ... ?>
<S:Envelope xmlns:S="http://...soap-envelope">
  <S:Body>
    <!-- payload -->
  </S:Body>
</S:Envelope>
Run Code Online (Sandbox Code Playgroud)

通过操作port.processRequest()调用的参数,您只能影响"payload"部分.您不能影响XML消息的外部部分.

我想在SOAP Body之前插入一个SOAP标头

<S:Header>
   <X:Security xmlns:X="http://...wsssecurity...>
      <X:BinarySecurityToken>kjh...897=</X:BinarySecurityToken>
   </X:Security>
</S:Header>
Run Code Online (Sandbox Code Playgroud)

我怎么做?

soap header jax-ws

23
推荐指数
2
解决办法
8万
查看次数

哪个是生成Web服务客户端的最佳maven插件?

我必须生成一个WS客户端,我无法决定使用哪个插件.到目前为止,我的选择是:jaxb2-maven-plugin,axistools-maven-plugin和jaxws-maven-plugin.

java axis jax-ws

23
推荐指数
2
解决办法
4万
查看次数

标签 统计

jax-ws ×10

java ×7

web-services ×4

wsdl ×3

jax-rs ×2

axis ×1

axis2 ×1

cors ×1

cxf ×1

glassfish ×1

header ×1

java-metro-framework ×1

jaxb ×1

rest ×1

soap ×1

tomcat ×1

webclient ×1

wsimport ×1

xml ×1

xsd ×1