2014-05-21 62 views
0

我的工作,創造了CORBA連接,我們可以把一些信息到目的港,並保存在屬性文件中這些信息的一個項目。騾子CXF構建org.mule.module.launcher.application.DefaultMuleApplication:空

此屬性文件是由一個WebService實現readed並公佈在especified URL。

我生成CXF-CODEGEN-插件WSDL2JAVA的WebService接口,如果我跑像JAVA應用騾項目,不存在問題。

如果我是騾子應用程序,我得到以下運行跟蹤:

ERROR 2014-05-21 12:17:41,518 [main] org.mule.module.launcher.application.DefaultMuleApplication: null 
java.lang.ArrayIndexOutOfBoundsException: 2 
at org.apache.cxf.ws.policy.PolicyAnnotationListener.handleEvent(PolicyAnnotationListener.java:112) 
at org.apache.cxf.service.factory.AbstractServiceFactoryBean.sendEvent(AbstractServiceFactoryBean.java:72) 
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createBindingInfo(AbstractWSDLBasedEndpointFactory.java:345) 
at org.apache.cxf.jaxws.JaxWsServerFactoryBean.createBindingInfo(JaxWsServerFactoryBean.java:179) 
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpointInfo(AbstractWSDLBasedEndpointFactory.java:252) 
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:147) 
at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:159) 
at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:205) 
at org.mule.module.cxf.builder.AbstractInboundMessageProcessorBuilder.build(AbstractInboundMessageProcessorBuilder.java:210) 
at org.mule.module.cxf.builder.AbstractInboundMessageProcessorBuilder.build(AbstractInboundMessageProcessorBuilder.java:66) 
at org.mule.module.cxf.config.FlowConfiguringMessageProcessor.initialise(FlowConfiguringMessageProcessor.java:96) 
at org.mule.processor.chain.AbstractMessageProcessorChain.initialise(AbstractMessageProcessorChain.java:83) 
at org.mule.construct.AbstractFlowConstruct.initialiseIfInitialisable(AbstractFlowConstruct.java:318) 
at org.mule.construct.AbstractPipeline.doInitialise(AbstractPipeline.java:212) 
at org.mule.construct.AbstractFlowConstruct$1.onTransition(AbstractFlowConstruct.java:113) 
at org.mule.construct.AbstractFlowConstruct$1.onTransition(AbstractFlowConstruct.java:107) 
at org.mule.lifecycle.AbstractLifecycleManager.invokePhase(AbstractLifecycleManager.java:141) 
at org.mule.construct.FlowConstructLifecycleManager.fireInitialisePhase(FlowConstructLifecycleManager.java:81) 
at org.mule.construct.AbstractFlowConstruct.initialise(AbstractFlowConstruct.java:106) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 

我的流程

<mule-ss:security-manager> 
    <mule-ss:delegate-security-provider 
     name="mws-provider" delegate-ref="authenticationManager" /> 
</mule-ss:security-manager> 

<spring:beans> 
    <ss:authentication-manager alias="authenticationManager"> 
     <ss:authentication-provider> 
      <ss:user-service id="userService"> 
       <ss:user name="admin1" password="admin1" authorities="ROLE_ADMIN" /> 
      </ss:user-service> 
     </ss:authentication-provider> 
    </ss:authentication-manager> 
</spring:beans> 

<flow name="prueba-wsdlFlow1" doc:name="prueba-wsdlFlow1"> 
    <http:inbound-endpoint exchange-pattern="request-response" address="http://localhost:8082/hello" doc:name="HTTP"/> 
    <mule-ss:http-security-filter realm="mule-realm" /> 
    <cxf:jaxws-service doc:name="SOAP" serviceClass="training.IHelloWorld"/> 
    <component class="training.HelloWorldImpl" doc:name="Java"/> 
</flow> 

HelloWorldImpl:

package training; 

import javax.jws.WebService; 

@WebService 
public class HelloWorldImpl implements IHelloWorld { 

@Override 
public String sayHi(String name) { 
    return "Hello " + name + "!"; 
} 

} 

IHell通過WSDL2JAVA oWorld產生:

package training; 

import javax.jws.WebMethod; 
import javax.jws.WebParam; 
import javax.jws.WebResult; 
import javax.jws.WebService; 
import javax.xml.bind.annotation.XmlSeeAlso; 
import javax.xml.ws.RequestWrapper; 
import javax.xml.ws.ResponseWrapper; 

@WebService(targetNamespace = "http://training/", name = "IHelloWorld") 
@XmlSeeAlso({ObjectFactory.class}) 
public interface IHelloWorld { 

@WebResult(name = "return", targetNamespace = "") 
@RequestWrapper(localName = "sayHi", targetNamespace = "http://training/", className = "training.SayHi") 
@WebMethod 
@ResponseWrapper(localName = "sayHiResponse", targetNamespace = "http://training/", className = "training.SayHiResponse") 
public java.lang.String sayHi(
    @WebParam(name = "text", targetNamespace = "") 
    java.lang.String text 
); 
} 

回答

1

降級所有行家CXF插件2.5.9版本解決這個問題。