当使用Content-Type application / xml

问题描述

我的JAX-WS SOAP Web服务接受text / xml,但是当我使用Content-Type作为applicaiton / xml时抛出错误

错误 WSServletDelegate doGet SEVERE:捕获了可抛出的java.lang.AbstractMethodError

我尝试使用@MTOM启用,但无法解决。我的处理程序甚至无法识别请求,并返回500 Internal Server Error响应。

这是我的处理程序的外观。 公共类HTNGMessageHandler实现SOAPHandler {

RateAvlSrv ravs = new RateAvlSrv();

CallBackDoorNew cBD = new CallBackDoorNew();

   
static final Logger logger = Logger.getLogger(HTNGMessageHandler.class);
Integer counter = 0;

@XmlMimeType("application/xml")
@Override
public boolean handleMessage(SOAPMessageContext context) {

    Boolean request = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
    
    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
    MimeHeaders headers = new MimeHeaders();
    headers.setHeader("Content-Type","application/xml");
    headers.setHeader("Encoding","UTF-8");

    LocalDateTime Now = LocalDateTime.Now();
    if (counter++ == 0) {
        logger.info("RECIEVED REQUEST");
        logger.info("TIME Now :" + dtf.format(Now));
    } else if (counter > 0) {
        logger.info("RETURNED RESPONSE");
        counter = 0;
        logger.info("TIME Now :" + dtf.format(Now));
        }
    if (!request) {
        try {
            SOAPMessage msg = context.getMessage();
            SOAPEnvelope env = msg.getSOAPPart().getEnvelope();
            SOAPHeader header = env.getHeader();
            SOAPBody soapBody = env.getBody();
            ravs.sendSOAPBODYtoService(soapBody);
            cBD.sendSOAPBODYtoService(soapBody);
            if (header == null) {
                header = env.addHeader();
                return false;
            }

            Node node = (Node) header.getElementsByTagName("Name").item(0);
            String token;
            if (node != null) {
                token = node.getChildNodes().item(0).getNodeValue();

                ravs.setHeaders(token);
                cBD.setHeaders(token);
                logger.debug(token);
                return true;
            }

        } catch (SOAPException | DOMException e) {
            logger.error("ERROR : " + e);
            e.printstacktrace();
        }
        return false;
    }
    return true;

}

@Override
public Set<QName> getHeaders() {
    return Collections.EMPTY_SET;
}

@Override
public boolean handleFault(SOAPMessageContext messageContext) {
    logger.info(messageContext.getMessage());
    return true;
}

@Override
public void close(MessageContext context) {
}

}

我还在sun-jaxws.xml中添加 enable-mtom =“ true”

但是到目前为止,什么都没有使我的Web服务接受application / xml。

需要帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)