我正在使用JBPM 5.4并使用可用的控制台 - 服务器休息服务来管理流程的工作流程.
我还成功测试了一个伪的WorkItemHandler,它只获得2个值并返回它们的总和,只是为了看到一个简单的过程正常工作.那很好.
但是,当我测试WorkItemHandler以调用外部Web服务时,出现以下错误:
Caused by: java.lang.NoSuchMethodError: javax.wsdl.xml.WSDLReader.readWSDL(Ljavax/wsdl/xml/WSDLLocator;Lorg/w3c/dom/Element;)Ljavax/wsdl/Definition;
at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:237) [cxf-rt-core-2.4.4.jar:2.4.4]
at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:186) [cxf-rt-core-2.4.4.jar:2.4.4]
Run Code Online (Sandbox Code Playgroud)
我做了什么:
我使用了cxf-codegen-plugin版本2.4.4 (在console-server.war的lib中使用相同版本的cxf)来生成wsdl的java代码.
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.4.4</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdl/adm/exampleService.wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
代码生成得很好.
我将工作项jar文件复制到console-server项目的lib文件夹中,正如我之前使用虚拟WorkItemHandler所做的那样.
我还检查了控制台 - 服务器项目的de lib文件夹中的cxf(2.4.4)和wsdl4j(1.6.2)版本.实际上,WSDLReader在wsdl4j的jar版本中包含"missing"方法.
我在哪里:
据我所知,这个类称它不是来自那个版本,但我无法想象会发生什么.
任何人都有线索该怎么办?
我正在使用jbpm安装程序附带的jboss,我什么都没改变.
谢谢!