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
);
}