2017-08-17 28 views
0

私はWSDLファイルをsrc \ main \ resources \ wsdl \ folderに配置しており、複数の操作が定義されています。私のアプリケーションはWeblogic 12Cサーバー上で動作しています。私は、Apache Cammel(バージョン:2.18.3)を使用して、SOAPのWebサービスを公開しようとしているのJava DSLで -apache CamelとWSDLを使用したSOAPサービスの公開

私は私のRouteBuilderクラスの構成法の下でコードの下に書かれている -

CxfComponent cxfComponent = new CxfComponent(getContext()); 
     CxfEndpoint serviceEndpoint = new CxfEndpoint("/soap/Manage_Order", cxfComponent); 
     serviceEndpoint.setAddress("http://<IP>:<PORT>/myproject/soap/ManageOrder_Details"); 
     serviceEndpoint.setServiceClass(
       "Fully qualified service interface name generated from WSDL file using maven with @WebService annotation"); 
     serviceEndpoint.setEndpointName(<end point name defined in the service class with @WebEndpoint annotation>); 
     serviceEndpoint.setDataFormat(DataFormat.MESSAGE); 
     serviceEndpoint.setDefaultOperationName("manageOrder"); 
     getContext().addEndpoint("myServiceEndPoint1", serviceEndpoint); 

from("cxf:myServiceEndPoint1").log("Hi, I am here").end(); 

ながら私はそれが例外の下に投げて、アプリケーションをデプロイしています -

weblogic.application.ModuleException: java.lang.IllegalArgumentException: serviceClass must be specified 
     at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140) 
     at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124) 
     at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:233) 
     at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:228) 
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) 
     Truncated. see log file for complete stacktrace 
    Caused By: java.lang.IllegalArgumentException: serviceClass must be specified 
     at org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:311) 
     at org.apache.camel.component.cxf.CxfEndpoint.createServerFactoryBean(CxfEndpoint.java:663) 
     at org.apache.camel.component.cxf.CxfConsumer.createServer(CxfConsumer.java:70) 
     at org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:66) 
     at org.apache.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:252) 
     Truncated. see log file for complete stacktrace 

のpom.xml

<dependency> 
    <groupId>org.apache.camel</groupId> 
    <artifactId>camel-soap</artifactId> 
    <version>2.18.3</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.camel</groupId> 
    <artifactId>camel-cxf</artifactId> 
    <version>2.18.3</version> 
    <!-- use the same version as your Camel core version --> 
</dependency> 

答えて

0

エラーが示すように、サービス・クラスおよびエンドポイント名は記述されていません。
serviceEndpoint.setServiceClass("Fully qualified service interface name generated from WSDL file using maven with @WebService annotation"); serviceEndpoint.setEndpointName(<end point name defined in the service class with @WebEndpoint annotation>); 手順1:wsdl2javaコマンドまたは任意のIDEを使用して、wsdlからサービスを生成します。 手順2:あなたのコードのクラスパスにそれを持ってください 手順3:上記のコードでクラス名とエンドポイント名を言及してください

関連する問題