0

WebサービスにSOAPハンドラーを追加しようとしています。

@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サービスはearファイルでWebLogic10.3にデプロイされています

もっと良いことを説明する必要がある場合はお知らせください。私はWebサービスとJavaを初めて使用します。

ありがとう。

4

1 に答える 1

2

問題は、ハンドラーコード(MyHandler)がコンストラクターで例外をスローしていたことです。これにより、WebLogicはClassNotFoundExceptionを表示していました。コンストラクターが例外をスローし、ハンドラーがアタッチされて適切に呼び出される問題を修正しました。

于 2013-03-27T20:58:53.993 に答える