相关疑难解决方法(0)

com.sun.xml.ws.message.saaj.SAAJHeader无法强制转换为com.sun.xml.ws.security.opt.impl.outgoing.SecurityHeader

我正在尝试访问第三方Web服务,该服务要求我创建一个传递时间信息,用户名和密码的安全标头.我已经在网上搜索工作示例,并尝试了很多方法.我正试图用Java 6中内置的东西来做这件事.我不确定我做错了什么.从WSDL生成我的Web服务客户端类之后,我在下面创建了Handler.

import java.util.Set;
import java.util.TimeZone;
import javax.xml.namespace.QName;
import javax.xml.soap.Node;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPFactory;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.Text;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;

public class MyHeaderHandler implements SOAPHandler<SOAPMessageContext>
{
  public boolean handleMessage(SOAPMessageContext context) 
  {
    String prefixUri = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-";
    String uri = prefixUri + "wssecurity-secext-1.0.xsd";
    String uta = prefixUri + "wssecurity-utility-1.0.xsd";
    String ta = prefixUri + "username-token-profile-1.0#PasswordText";
    Boolean isRequest = (Boolean)context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
    if(isRequest)
    {
      try
      {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:dd.SSS'Z'");
        formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
        java.util.Date created = new java.util.Date(); …
Run Code Online (Sandbox Code Playgroud)

java web-services jax-ws

5
推荐指数
1
解决办法
5127
查看次数

标签 统计

java ×1

jax-ws ×1

web-services ×1