小编Pao*_*eno的帖子

JBPM WorkItemHandler中的NoSuchMethodError WSDLReader.readWSDL

我正在使用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,我什么都没改变.

谢谢!

web-services business-process-management jbpm

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