2013-03-19 19 views
0

我正在尝试将SOAP处理程序添加到Web服务中。Java Web服务中处理程序类的位置

注释添加到Web服务之后@WebService注释是:

@HandlerChain(file="MyHandler.xml") 

Web服务是WEB-INF/classes目录下包装的服务类和处理类是位于一个罐子在WEB-INF/lib下。

例如:

WEB-INF/classes/com/.../MyService.class 
WEB-INF/classes/com/.../MyServiceImpl.class 
WEB-INF/classes/com/.../MyHandler.xml 
. 
. 
. 
WEB-INF/lib/JarProvidedToMe.jar <--- Has the handler class (MyHandler.class) in it that is referenced in MyHandler.xml 

MyHandler.xml(更改完全合格的名称):

<?xml version="1.0" encoding="UTF-8"?> 
<handler-chains xmlns="http://java.sun.com/xml/ns/javaee"> 
    <handler-chain> 
     <handler> 
      <handler-name>com.full.path.MyHandler</handler-name> 
      <handler-class>com.full.path.MyHandler</handler-class> 
     </handler> 
    </handler-chain> 
</handler-chains> 

当我尝试部署Web服务,我得到的ClassNotFoundException的处理类(MyHandler的。类)在MyHandler.xml中引用。

使用Eclipse我已经能够使用eclipse中的对话框添加我自己的处理程序。 Eclipse将处理程序类放在与服务类相同的位置。但我需要能够使用在jar文件中提供给我的处理程序。

Web服务被部署在EAR文件到WebLogic 10.3

请让我知道如果我需要来形容更好的东西。我不熟悉Web服务和Java。

谢谢。

+0

你能发布MyHandler.xml的相关部分吗? – rdcrng 2013-03-19 17:35:11

+0

我修改了原帖以包含MyHandler.xml – Yadrif 2013-03-19 17:46:15

+0

我唯一能想到的另一件事是再次验证您提供的jar实际上存在于classpath中,即您没有将它打包出错。 – rdcrng 2013-03-19 17:48:30

回答

2

问题在于处理程序代码(MyHandler)在构造函数中抛出异常。 这导致WebLogic显示ClassNotFoundException。 我解决了导致构造函数抛出异常的问题,并且处理程序被连接并正确调用。