Tag: jax ws

JAX-WS Sharepoint 401未经授权的NTLM

我尝试通过JAX-WS访问Sharepoint列表,如此处所述 但是,当运行下面的代码时,我得到: java.lang.Exception: Exception. See stacktrace.com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 401: Unauthorized Sharepoint需要NTLM身份validation。 可能是什么问题? 非常感谢! public static ListsSoap sharePointListsAuth(String userName, String password) throws Exception { ListsSoap port = null; if (userName != null && password != null) { try { Lists service = new Lists(); port = service.getListsSoap(); System.out.println(“Web Service Auth Username: ” […]

Java Web服务中的Singleton对象

早上好,我正在开发一个公开Web服务接口的java Web应用程序。 为了将全局对象保留在内存中,我将以下类用作Singleton: public class SingletonMap { private static final SingletonMap instance = new SingletonMap(); private static HashMap couponMap = null; private static long creationTime; private SingletonMap() { creationTime = System.currentTimeMillis(); couponMap = new HashMap(); } public static synchronized SingletonMap getInstance() { return instance; } public static long getCreationTime() { return creationTime; } } 我正在使用上面的类,以便为Web服务的所有线程提供相同的HashMap实例。 […]

如何向SOAP请求添加标头?

我尝试通过java代码调用HTTPS SOAP Web服务: URL url = new URL(“https://somehost:8181/services/”SomeService?wsdl”); QName qname = new QName(“http://services.somehost.com/”, “SomeService”); Service service = Service.create(url, qname); SomeService port = service.getPort(SomeService .class); port.doSomething(); 但得到例外: threw an unexpected exception: javax.xml.ws.soap.SOAPFaultException: Security Requirements not met – No Security header in message 当我分析正确的请求样本时,我确定它必须包含标题: http://somehost:8181/services/SomeService https://somehost:8181/services/”SomeService/doSomethingRequest http://www.w3.org/2005/08/addressing/anonymous uuid:3428539e-d645-72ae-adc0-5423c1e68942 2013-01-15T16:36:30Z 2014-01-15T14:06:30Z 那么如何将这个头添加到我的SOAP请求中呢?

使用WebParam不允许使用XmlElement注释

我在webservice中有一个方法,具有以下签名: @WebResult(name=”purchaseId”) public int CreatePurchase( @XmlElement(required=true) @WebParam(name = “item”) String item { … } 在我看来(基于我发现的信息),这应该工作。 不幸的是,我在编译时收到以下错误消息: The annotation @XmlElement is disallowed for this location 有谁知道如何解决这个问题?

Java:使用端点将webservice发布到tomcat服务器

我正在创建一个简单的SOAP Web服务。 我要确保它在tomcat Web服务上运行。 我试图用JAX-WS实现这个(参见代码) 我的问题是:Endpoint.publish是否使用tomcat服务器来托管这个或者它是一种迷你glassfish类型的服务器? 我应该扩展UnicastRemoveObject或类似的东西吗? 理想情况下,它可以打包成.WAR并放入目录中,然后才能工作。 它似乎不适用于我安装的tomcat服务器,因为它说端口已经在使用中。 我正在使用安装了tomcat6包的Ubuntu karmic,它也可能是我的用户没有权限发布到8080上运行的tomcat 我希望这个问题足够清楚 示例代码: @WebService public class UserAttributes { public static void main(String[] args) { UserAttributes instance = new UserAttributes(); Endpoint.publish(“http://localhost:8082/WebServices/userattributes”, instance); } public string Hello() { return “Hello World”; } }

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

如果有任何错误,我想记录原始肥皂邮件请求,我正在使用JAX-WS。 任何帮助将不胜感激。 只有在响应中发生exception时,是否有一种简单的方法(也就是说:不使用代理)来访问使用JAX-WS参考实现(JDK 1.5中包含的那个)更好地发布的Web服务的原始请求/响应XML? 我想记录原始的SOAP reuest,以便我可以在以后的任何webservice客户端测试它

用户在SOAP中进行身份validation – 如何操作?

我提出了一个关于JAX-WS,身份validation和授权的问题 – 如何? ; 讨论了安全级别以及存储用户凭据的位置。 现在得出一些结论后,我想尝试其中一种情况: SOAP Web服务 – metro 消息级安全性 – 相互证书身份validation,用于validation客户端应用程序 肥皂头中的用户凭证 如何获取凭据并进行授权? 我有两个想法: JAAS(我对此一无所知); SOAP处理程序 – 使用WebServiceContext从消息中提取凭据并“手动”执行授权。 你能帮我决定最好的方法,以及如何实现它? 请记住,我需要共同证书和用户令牌。

JAX-WS入门

有人可以建议一些关于JAX-WS入门的好教程吗? 使用各种工具,如wsgen等……

无法创建JAXBContext创建我的wsdl

我正在尝试为webservices生成我的WSDL,但是我收到此错误: 注意:ap round:2 线程“main”中的exceptionjavax.xml.ws.WebServiceException:无法创建JAXBContext at com.sun.xml.internal.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:153) at com.sun.xml.internal.ws.model.AbstractSEIModelImpl.postProcess(AbstractSEIModelImpl.java:83) at com.sun.xml.internal.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:244) 在com.sun.tools.internal.ws.wscompile.WsgenTool.buildModel(WsgenTool.java:229) 在com.sun.tools.internal.ws.wscompile.WsgenTool.run(WsgenTool.java:112) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在java.lang.reflect.Method.invoke(Method.java:597) 在com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:105) 在com.sun.tools.internal.ws.WsGen.main(WsGen.java:41) 引起:java.security.PrivilegedActionException:com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:IllegalAnnotationExceptions的1个计数 java.lang.StackTraceElement没有no-arg默认构造函数。 此问题与以下位置有关: 在java.lang.StackTraceElement at public java.lang.StackTraceElement [] java.lang.Throwable.getStackTrace() 在java.lang.Throwable 在java.lang.Exception 在java.sql.SQLException 私人java.sql.SQLException wsdb.jaxws.SQLExceptionBean.nextException 在wsdb.jaxws.SQLExceptionBean at java.security.AccessController.doPrivileged(Native Method) at com.sun.xml.internal.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:140) ……还有10个 引起:com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:IllegalAnnotationExceptions的1个计数 java.lang.StackTraceElement没有no-arg默认构造函数。 此问题与以下位置有关: 在java.lang.StackTraceElement at public java.lang.StackTraceElement [] java.lang.Throwable.getStackTrace() 在java.lang.Throwable 在java.lang.Exception 在java.sql.SQLException […]

更改使用JAXWS生成的默认XML名称空间前缀

我正在使用JAXWS为我们正在构建的Java应用程序生成WebService客户端。 当JAXWS构建其XML以在SOAP协议中使用时,它会生成以下名称空间前缀: 我的问题是我的对手(一家大型转账公司)管理我的客户端连接的服务器,拒绝接受WebService调用( 请不要问我的原因 ),除非XMLNS(XML namepspace前缀是soapenv )。 喜欢这个: 所以我的问题是: 有没有办法命令JAXWS(或任何其他Java WS客户端技术)使用soapenv而不是env作为XMLNS前缀来生成客户端? 是否有API调用来设置此信息? 谢谢!