Tag: jax ws

JAXWS和会话

我很擅长编写Web服务。 我正在使用JAXWS开发SOAP服务。 我希望能够让用户登录并在我的服务中知道哪个用户正在发出命令。 换句话说,有一些会话处理。 我见过这样做的一种方法是使用cookie并从我的Web服务访问HTTP层。 但是,这依赖于使用HTTP作为传输层(我知道HTTP几乎总是传输层,但我是纯粹的)。 是否有更好的方法可以使服务层不知道传输层? 有没有办法用servletfilter完成这个? 我希望答案尽可能与框架无关。

无法找到JAX-WS架构http://jax-ws.dev.java.net/spring/servlet.xsd

我正在使用Spring框架实现JAX-WS。 以下是我的Spring applicationContext.xml 但是,Eclipse抱怨道: 引用文件包含错误( http://jax-ws.dev.java.net/spring/servlet.xsd )。 经过调查,我找到了URL: http : //jax-ws.dev.java.net/spring/servlet.xsd不存在。 相反,它似乎转移到: http ://jax-ws.java.net/spring/servlet.xsd(您可以在浏览器中打开此链接) 因此,我将http://jax-ws.dev.java.net/spring/servlet.xsd中的 XSD架构URL更新为http://jax-ws.java.net/spring/servlet.xsd 现在我的applicationContext.xml看起来像这样: 实际上,通过此更改,Eclipse错误消失了。 问题是在Tomcat 7中启动Web服务后,我得到以下运行时错误: org.xml.sax.SAXParseException; lineNumber:20; columnNumber:29; schema_reference.4:无法读取模式文档“ http://jax-ws.java.net/spring/servlet.xsd ”,因为1)找不到该文档; 2)文件无法阅读; 3)文档的根元素不是。 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.warning(ErrorHandlerWrapper.java:99) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:433) 请指教。 非常感谢你。 问候,

直接从源创建Web服务客户端

我试图直接从@Webservice类生成WS客户端jar。 我们来看这个例子: package com.example.maven.jaxws.helloservice; import javax.jws.WebService; @WebService public class Hello { public String sayHello(String param) { ; return “Hello ” + param; } } 我可以生成一个war文件并使用glassfish来提供这个webservice,从那里我可以使用glassfish WSDL URL来生成客户端源。 我想要做的是跳过glassfish部分。 从定义webservice的maven项目开始,我想使用jaxws-maven-plugin来创建客户端类,但我找不到任何方法来指定webservice的实际URL。 它可能是对的吗? @see还使用已知但无法访问的wsdl创建Web服务客户端

如何配置@HandlerChain指向JAR文件中的处理程序链配置文件?

有没有办法引用分布在JAR文件中的处理程序配置文件(例如:handler.xml)? 这样的事情: @HandlerChain(file=”somefile.jar”)或@HandlerChain(file=”myhandler.xml”) ,假设myhandler.xml存储在somefile.jar 。

如何将OutputStream传递给StreamingDataHandler?

我在JAX-WS中有一个Java Web服务,它从另一个方法返回一个OutputStream。 我似乎无法弄清楚如何将OutputStream流式传输到返回的DataHandler,而不是创建一个临时文件,写入它,然后再将它作为InputStream重新打开。 这是一个例子: @MTOM @WebService class Example { @WebMethod public @XmlMimeType(“application/octet-stream”) DataHandler service() { // Create a temporary file to write to File fTemp = File.createTempFile(“my”, “tmp”); OutputStream out = new FileOutputStream(fTemp); // Method takes an output stream and writes to it writeToOut(out); out.close(); // Create a data source and data handler based on […]

在JAX-WS中重命名参数名称

我使用自下而上的方法在RSA 7.5和Websphere 7中使用JAX-WS创建了一个Web服务。 当我在SOAP UI中打开WSDL时,参数部分显示如下: ? ? ? ? service方法将上述4个元素作为参数来返回员工详细信息。 1)我想用一些有效的名称重命名这个arg0,arg1等。 2)我想删除arg标签上方的 。 (为了从元素名称中删除 ,我使用了@XMLElement(required = true))。 但我不确定在这种情况下在哪里使用此注释:( 请帮忙。 问候,

在编译时找不到com.sun.xml.internal.ws.developer.JAXWSProperties

我们在代码中使用com.sun.*包中的类JAXWSProperties来设置超时属性,如下所示: import com.sun.xml.internal.ws.developer.JAXWSProperties; … Map ctxt = ((BindingProvider) port).getRequestContext(); ctxt.put(JAXWSProperties.CONNECT_TIMEOUT, 10000); 它在本地Eclipse中编译得很好,但在连续集成系统上都没有(使用JDK 1.6)。 通过研究这个问题,我了解到应该避免使用com.sun.*包。 所以我的问题是: 导致编译时导入失败的原因是什么? 应该使用什么代替JAXWSProperties ?

AXIS vs JAX-WS for Web Service Client

我决定用Java实现Web Service Client。 我在Eclipse中生成了Axis客户端,在wsimport中生成了JAS-WS客户端。 这两种解决方案都有效,现在我必须选择一种解决方案。 在选择一个之前我应该​​考虑什么?

如何从JAX-WS Web服务中访问ApplicationContext?

类似于如何从JAX-WS Web服务中访问ServletContext? ,有没有办法访问applicationContext,比这更容易? import javax.annotation.Resource; import javax.jws.WebService; import javax.servlet.ServletContext; import javax.xml.ws.WebServiceContext; import javax.xml.ws.handler.MessageContext; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; @WebService public class MyWebService { // boilerplate code begins 🙁 @Resource private WebServiceContext context; private WebApplicationContext webApplicationContext = null; /** * @return * @throws IllegalStateException */ private WebApplicationContext getWebApplicationContext() throws IllegalStateException { if (webApplicationContext != null) return webApplicationContext; […]

Tomcat 6:如何在Web方法调用结束后删除临时文件?

我有一个临时文件,其中包含通过MTOM二进制附件作为SOAP响应的一部分返回的数据。 一旦方法调用“结束”(即完成转移),我想将其丢弃。 这对我来说最好的方法是什么? 我可以弄清楚如何执行此操作的最佳方法是在会话被销毁时删除它们,但我不确定是否有更“直接”的方法来执行此操作。 仅供参考,我不使用Axis,我正在使用jax-ws,如果这很重要的话。 更新:我不确定答案者是否真的理解这个问题。 我知道如何删除java中的文件。 我的问题是: @javax.jws.WebService public class MyWebService { … @javax.jws.WebMethod public MyFileResult getSomeObject() { File mytempfile = new File(“tempfile.txt”); MyFileResult result = new MyFileResult(); result.setFile(mytempfile); // sets mytempfile as MTOM attachment // mytempfile.delete() iS WRONG // can’t delete mytempfile because it hasn’t been returned to the web service client // […]