如题所示,使用Apache CXF开发web service时,使用SoapUI对web service接口进行测试时报了以下错误:
1
2
3
4
5
6
7
|
org.apache.cxf.interceptor.Fault: object is not an instance of declaring
class
while
invoking
public
abstract
java.lang.String cn.zifangsky.service.CXFService.sayHello(java.lang.String) with params [dddd].
at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:
166
)
at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:
267
)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:
140
)
at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:
232
)
at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:
85
)
...
|
这个bug的出现是在配置文件这里:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<
jaxws:server
id
=
"sayHelloServices"
serviceClass
=
"cn.zifangsky.service.CXFService"
address
=
"/services/soap"
>
<
jaxws:serviceBean
>
<
bean
class
=
"cn.zifangsky.service.impl.CXFServiceImpl"
/>
</
jaxws:serviceBean
>
<
jaxws:outInterceptors
>
<
ref
bean
=
"outLoggingInterceptor"
/>
</
jaxws:outInterceptors
>
<
jaxws:inInterceptors
>
<
ref
bean
=
"inLoggingInterceptor"
/>
</
jaxws:inInterceptors
>
<
jaxws:features
>
<
ref
bean
=
"loggingFeature"
/>
<
wsa:addressing
xmlns:wsa
=
"http://cxf.apache.org/ws/addressing"
/>
</
jaxws:features
>
</
jaxws:server
>
|
其中,<jaxws:serviceBean>需要对应的是webservice接口的实现类,如果填错了则会出现上面的bug。当然我当时是犯了一个低级的错误,那就是CXFServiceImpl这个类忘记实现CXFService接口了,真是汗颜
本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1772449,如需转载请自行联系原作者