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服务

解决方案 »

  1.   

    说你这个 kjzlWebservice  没有定义了/ 
      

  2.   

    有的,我自己写的注入了spring里面
      

  3.   

    <?xml version="1.0" encoding="UTF-8"?>
    <!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对应的配置文件
      

  4.   

    测试代码,如下:
    就是在系统没人登陆的时候是好用的,一旦有人登陆,就会报错
    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;
    }
    }
      

  5.   

    同事帮忙解决了这个问题,service.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