加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

解决 xfire 客户端程序 加载报错 PropertyAccessExceptionsExcep

发布时间:2020-12-17 02:00:57 所属栏目:安全 来源:网络整理
导读:我使用的是xfire构建的webservice服务端和客户端,tomcat6.0 自己写的服务器端,运行当然是没有问题啦~ 然后自己写了个客户端,因为是web工程,部署的时候,就报错了。。。 但是这个web工程,当运行链接webservice的类时,即作为 java application运行时,是

我使用的是xfire构建的webservice服务端和客户端,tomcat6.0

自己写的服务器端,运行当然是没有问题啦~

然后自己写了个客户端,因为是web工程,部署的时候,就报错了。。。

但是这个web工程,当运行链接webservice的类时,即作为 java application运行时,是可以连接上,并且返回值正确的。

*错误如下:

严重: Servlet /remoteXfireTest threw load() exception

PropertyAccessExceptionsException (2 errors)

org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [java.lang.Class] for property 'serviceClass'; nested exception is java.lang.IllegalArgumentException: Class not found: com.geoway.webservice.DataService

java.lang.IllegalArgumentException: Class not found: com.geoway.webservice.DataService

??? at org.springframework.beans.propertyeditors.ClassEditor.setAsText(ClassEditor.java:66)

??? at org.springframework.beans.BeanWrapperImpl.doTypeConversionIfNecessary(BeanWrapperImpl.java:771)

??? at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:584)

??? at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:469)

??? at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:626)

??? at org.springframework.beans.BeanWrapperImpl.setPropertyValues(BeanWrapperImpl.java:653)

??? at org.springframework.beans.BeanWrapperImpl.setPropertyValues(BeanWrapperImpl.java:642)

??? at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1023)

??? at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:824)

??? at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:345)

??? at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:226)

??? at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)

??? at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:275)

??? at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:320)

??? at org.codehaus.xfire.spring.XFireConfigLoader.getXFireApplicationContext(XFireConfigLoader.java:107)

??? at org.codehaus.xfire.spring.XFireConfigLoader.loadContext(XFireConfigLoader.java:41)

??? at org.codehaus.xfire.transport.http.XFireConfigurableServlet.loadConfig(XFireConfigurableServlet.java:86)

??? at org.codehaus.xfire.transport.http.XFireConfigurableServlet.createXFire(XFireConfigurableServlet.java:54)

??? at org.codehaus.xfire.transport.http.XFireServlet.init(XFireServlet.java:45)

??? at javax.servlet.GenericServlet.init(GenericServlet.java:212)

??? at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)

??? at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)

??? at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)

??? at org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)

??? at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)

??? at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)

??? at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

??? at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)

??? at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)

??? at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)

??? at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)

??? at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)

??? at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)

??? at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)

??? at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)

??? at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

??? at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)

??? at org.apache.catalina.core.StandardService.start(StandardService.java:516)

??? at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)

??? at org.apache.catalina.startup.Catalina.start(Catalina.java:566)

??? at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

??? at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

??? at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

??? at java.lang.reflect.Method.invoke(Method.java:597)

??? at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)

??? at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [java.lang.Class] for property 'implementationClass'; nested exception is java.lang.IllegalArgumentException: Class not found: com.geoway.webservice.impl.DataServiceImpl

java.lang.IllegalArgumentException: Class not found: com.geoway.webservice.impl.DataServiceImpl

??? at org.springframework.beans.propertyeditors.ClassEditor.setAsText(ClassEditor.java:66)

??? at org.springframework.beans.BeanWrapperImpl.doTypeConversionIfNecessary(BeanWrapperImpl.java:771)

??? at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:584)

??? at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:469)

??? at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:626)

??? at org.springframework.beans.BeanWrapperImpl.setPropertyValues(BeanWrapperImpl.java:653)

??? at org.springframework.beans.BeanWrapperImpl.setPropertyValues(BeanWrapperImpl.java:642)

??? at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1023)

??? at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:824)

??? at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:345)

??? at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:226)

??? at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)

??? at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:275)

??? at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:320)

??? at org.codehaus.xfire.spring.XFireConfigLoader.getXFireApplicationContext(XFireConfigLoader.java:107)

??? at org.codehaus.xfire.spring.XFireConfigLoader.loadContext(XFireConfigLoader.java:41)

??? at org.codehaus.xfire.transport.http.XFireConfigurableServlet.loadConfig(XFireConfigurableServlet.java:86)

??? at org.codehaus.xfire.transport.http.XFireConfigurableServlet.createXFire(XFireConfigurableServlet.java:54)

??? at org.codehaus.xfire.transport.http.XFireServlet.init(XFireServlet.java:45)

??? at javax.servlet.GenericServlet.init(GenericServlet.java:212)

??? at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)

??? at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)

??? at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)

??? at org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)

??? at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)

??? at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)

??? at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

??? at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)

??? at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)

??? at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)

??? at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)

??? at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)

??? at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)

??? at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)

??? at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)

??? at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

??? at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)

??? at org.apache.catalina.core.StandardService.start(StandardService.java:516)

??? at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)

??? at org.apache.catalina.startup.Catalina.start(Catalina.java:566)

??? at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

??? at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

??? at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

??? at java.lang.reflect.Method.invoke(Method.java:597)

??? at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)

??? at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

在网上也看到很多人,都没有人写解决方法的。。晕。。

?

其实问题是出在,你的客户端程序中的service.xml中,配置了和服务器端相同的

<serviceClass>和<implementationClass>,而你的客户端中当然不会有<implementationClass>里面的实现类,及时是<serviceClass>里面的接口类,也不一定和服务器端的接口类放在相同的路径下。

因此在web.xml加载时,当加载到service.xml时,就报错啦~因为找不到嘛。

?

还有人说,把服务器的classes里面的class放到客户端的classes文件夹下,但是,由于我的webservice是要提供给客户使用的,我可不希望把class都给人家,即使是编译好的。。

?

解决办法就是:

在service.xml中只配置<serviceClass>个元素,然后接口类要和客户端中包含的接口类包名什么的要一样就好了,

这个是我的webservice客户端中的service.xml:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://xfire.codehaus.org/config/1.0">

<service>

?????? <name>DataService</name>

?????? <namespace>http://service.maggie.com/DataService</namespace>

?????? <serviceClass>com.maggie.webs.DataService</serviceClass>

?????? <style>wrapped</style>

?????? <use>literal</use>

?????? <scope>application</scope>

?????? <properties>

?????????? <property name="mtom-enabled" value="true" />

?????? </properties>

??? </service>

</beans>

不过还有个奇怪的问题。。。我以前用tomcat5.5运行这个项目的时候就没有报错。。最近改成tomcat6了就报这个错了。。虽然不影响项目运行吧。。就是觉得别扭。。不知道是不是tomcat版本的问题呢。。。。,或者jdk。。。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读