【问题标题】:Location for Handler class in Java web serviceJava Web 服务中 Handler 类的位置
【发布时间】:2013-03-19 16:54:15
【问题描述】:

我正在尝试将 SOAP 处理程序添加到 Web 服务。

在@WebService注解之后添加到Web服务的注解是:

@HandlerChain(file="MyHandler.xml")

Web 服务与 WEB-INF/classes 下的服务类一起打包,处理程序类位于 WEB-INF/lib 下的 jar 中。

例如:

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 服务时,我得到了 MyHandler.xml 中引用的处理程序类 (MyHandler.class) 的 ClassNotFoundException。

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

Web 服务正在部署到 WebLogic 10.3 的 ear 文件中

如果我需要更好地描述某些内容,请告诉我。我是 Web 服务和 Java 的新手。

谢谢。

【问题讨论】:

  • 你能把MyHandler.xml的相关部分贴出来吗?
  • 我修改了原始帖子以包含 MyHandler.xml
  • 我能想到的唯一另一件事是再次验证您提供的 jar 确实存在于类路径中,即您没有错误打包它。
  • 我找到了为什么我得到 ClassNotFoundException... 问题实际上是处理程序代码在构造函数中引发了异常。出于某种原因,这显示为 ClassNotFound。

标签: web-services jakarta-ee soaphandler


【解决方案1】:

问题实际上是处理程序代码 (MyHandler) 在构造函数中引发了异常。 这导致 WebLogic 显示 ClassNotFoundException。 我修复了导致构造函数抛出异常并且处理程序被正确附加和调用的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 2011-04-24
    相关资源
    最近更新 更多