我正在試圖爲客戶端實現SOAP處理程序。我使用如何在JAX-WS客戶端中實現SOAP處理程序
我已經產生與蝕客戶端接口類從終點WSDL
處理機-chain.xml文件被放置在同一個包中Wildfly8.2 java8和JAX-WS和Maven客戶端界面。
當我調用Web服務時,它執行正常,但未調用處理程序。如果我把一個剎車點的處理程序是永遠不會調用
客戶端界面是這樣的:
@WebService(targetNamespace = "********************", name = "WorkflowEditor")
@XmlSeeAlso({ ObjectFactory.class })
@HandlerChain(file = "handler-chain.xml")
public interface WorkflowEditor {
我曾嘗試也把XML資源並調用它與URL的註解我驗證工作,例如:
@WebService(targetNamespace = "**************", name = "WorkflowEditor")
@XmlSeeAlso({ ObjectFactory.class })
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
@HandlerChain(file = "http://cloudflow-backend-local.arctur.net:8080/resources/handler-chain.xml")
public interface WorkflowEditor {
的處理程序是這樣的:
package si.arctur.services.handlers;
import java.util.Set;
import javax.xml.namespace.QName;
import javax.xml.soap.SOAPMessage;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPMessageContext;
public class PrintEnvelopeHandler implements javax.xml.ws.handler.soap.SOAPHandler<SOAPMessageContext> {
@Override
public boolean handleMessage(SOAPMessageContext context) {
System.out.println("Client : handleMessage()......");
SOAPMessage soapMessage = context.getMessage();
return true;
}
@Override
public boolean handleFault(SOAPMessageContext context) {
System.out.println("Client : handleFault()......");
return true;
}
@Override
public void close(MessageContext context) {
System.out.println("Client : close()......");
}
@Override
public Set<QName> getHeaders() {
// TODO Auto-generated method stub
return null;
}
}
和處理器,chain.xml文件是這樣的:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<javaee:handler-chains
xmlns:javaee="http://java.sun.com/xml/ns/javaee"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<javaee:handler-chain>
<javaee:handler>
<javaee:handler-class>si.arctur.services.handlers.PrintEnvelopeHandler</javaee:handler-class>
</javaee:handler>
</javaee:handler-chain>
教程,告訴你編輯生成的文件,是最有可能丟失的東西。 – Isaac