java - 错误soapResponse异常SpringBusFactory
问题描述
我正在尝试使用 Java 中的肥皂 Web 服务,它仅适用于 Eclipse IDE,但在导入 JBPM 项目时不起作用。我得到的错误是:
无法确定 BusFactory 实现类名称:java.lang.ClassCastException : class org.apache.cxf.bus.spring.SpringBusFactory
它与 Eclipse 完美配合
import java.io.*;
import java.util.Iterator;
import javax.xml.soap.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamResult;
import javax.xml.xpath.*;
import org.xml.sax.InputSource;
public class metodos {
public metodos() {
super();
}
public String getInfo() {
String retorno = "";
System.out.println("methodGetInfo ");
try {
System.out.println("methodGetInfo newInstance");
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
System.out.println("methodGetInfo createConnection");
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
System.out.println("methodGetInfo MessageFactory newInstance");
MessageFactory messageFactory = MessageFactory.newInstance();
System.out.println("methodGetInfo createMessage");
javax.xml.soap.SOAPMessage soapRequest = messageFactory.createMessage();
System.out.println("methodGetInfo getSOAPPart");
SOAPPart soapPart = soapRequest.getSOAPPart();
System.out.println("methodGetInfo getEnvelope");
SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
soapEnvelope.addNamespaceDeclaration("end", endPoint);
SOAPBody soapBody = soapEnvelope.getBody();
soapBody.addChildElement("getInfo", "end");
soapRequest.saveChanges();
System.out.println("methodGetInfo soapConnection call");
SOAPMessage soapResponse = soapConnection.call(soapRequest, url);
System.out.println("methodGetInfo transformerFactory");
TransformerFactory transformerFactory = TransformerFactory.newInstance();
System.out.println("methodGetInfo newTransformer");
Transformer transformer = transformerFactory.newTransformer();
System.out.println("methodGetInfo getSOAPPart");
Source sourceContent = soapResponse.getSOAPPart().getContent();
System.out.println("methodGetInfo StringWriter");
StringWriter writer = new StringWriter();
System.out.println("methodGetInfo StreamResult");
StreamResult result = new StreamResult(writer);
System.out.println("methodGetInfo transformer.transform");
transformer.transform(sourceContent, result);
当我使用 JBPM 时出现此错误:
错误是由这一行引起的:
SOAPMessage soapResponse = soapConnection.call(soapRequest, url);
我没有在 java 中使用任何外部库。
Java编译器级别:1.8
JBPM 版本:7.17.0 最终版
解决方案
似乎有两种不同版本的 apache cxf 可用,一种来自 EAP 模块,另一种来自 jbpm 应用程序 war/lib 文件夹。您必须禁用其中一个 jar 才能解决此冲突。
推荐阅读
- exception - 如何在 Julia 中抛出特定异常
- javascript - frida new NativeFunction 中的 returnType 和 argType 是什么?
- ngx-translate - 如何强制 ngx-translate 离线工作?
- javascript - 在 Jest 中进行单元测试时模拟 vscode API
- php - 为 Mac 安装 ext-zip
- selenium - 您的连接已中断。使用 Selenium 解析时的 ERR_NETWORK_CHANGED
- flutter - 如何通过 JSON 中的 http 列表收集循环
- java - Visual Studio Enterprise 2019 创建java项目
- json - 使用 JSON Payload 在 GraphQL cURL 中插入 bash 变量(位置参数)
- angular - 如何将搜索结果的计数添加到代码镜像中