AXIS2做的webservice服务,与原有项目整合,启动服务客户端测试好用。
刷新项目的登陆页面,再次用客户端脚本测试报错
org.apache.axis2.AxisFault: unknown
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:446)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:371)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:540)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:521)
at org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:102)
at com.wondersgroup.kjzl.webServe.service.client.Client00001.sendService(Client00001.java:47)
at com.wondersgroup.kjzl.webServe.service.client.Client00001.main(Client00001.java:25)
后台报错:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'kjzlWebservice' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:387)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:971)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:880)
at org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier.getServiceObject(SpringAppContextAwareObjectSupplier.java:54)
... 45 moreSpringWeb服务
刷新项目的登陆页面,再次用客户端脚本测试报错
org.apache.axis2.AxisFault: unknown
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:446)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:371)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:540)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:521)
at org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:102)
at com.wondersgroup.kjzl.webServe.service.client.Client00001.sendService(Client00001.java:47)
at com.wondersgroup.kjzl.webServe.service.client.Client00001.main(Client00001.java:25)
后台报错:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'kjzlWebservice' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:387)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:971)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:880)
at org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier.getServiceObject(SpringAppContextAwareObjectSupplier.java:54)
... 45 moreSpringWeb服务
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<description>kjzlWebService</description> <bean id="kjzlWebservice" class="com.wondersgroup.kjzl.webServe.service.KjzlWebServiceImpl" singleton="false">
<property name="oldpersonService" ref="oldpersonService"></property>
</bean>
</beans>
这个就是spring对应的配置文件
就是在系统没人登陆的时候是好用的,一旦有人登陆,就会报错
public class AxisUtil {
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException {
String xmlStr="huang xirui";
String url="http://localhost:8080/KJZL/services/kjzlWebService";
String method="sayHello";
AxisUtil.sendService(xmlStr,url,method);
}
public static String sendService(String xmlStr,String url,String method){
String xml=null;
try {
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(url);
options.setTo(targetEPR);
QName opAddEntry = new QName("http://service.webServe.kjzl.wondersgroup.com",method);
Object[] opAddEntryArgs = new Object[] {xmlStr};
Class[] classes = new Class[] { String.class };
xml=(String)serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0];
System.out.println(xml);
serviceClient.cleanupTransport();
} catch (Exception e) {
e.printStackTrace();
long end = System.currentTimeMillis();
}
return xml;
}
}
这个问题是spring与axis2整合的时候可能出现的问题,我们都是用的一个版本的axis,只是自己的service.xml文件中有这一点区别:
<parameter name="ServiceObjectSupplier">
org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
</parameter>
<parameter name="ServiceObjectSupplier">
org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier
</parameter>
apache官网的解释http://axis.apache.org/axis2/java/core/docs/spring.html