2

WebSphere v7 にデプロイされた EAR にパックされた JAX-WS Web サービスがあります。EAR には以下が含まれます:
- APP-INF ディレクトリ: classes ディレクトリ (正しいパッケージ階層の .class ファイル) と、必要な jar を含む lib ディレクトリ
- META-INF ディレクトリ
- 空の WEB-INF および META-INF ディレクトリと HelloWorld との戦争index.html

私は2つのクラスを持っています:

@WebService
public interface Service {}

と:

@WebService
public class ServiceImpl implements Service {
    @WebMethod
    public String test(String who) {
        return("Hello " + who + "!");
    }
}

(lib dir の jar はビジネス ロジックに必要です。ロジックを単純な hello + who に置き換えただけです)。

EAR を WAS v7 にデプロイしました。SOAP UI を使用してテストしたいと思います。 デプロイ中に
/serviceのコンテキスト ルートを設定しました。

生成された WSDL とそのアドレス/エンドポイントはどこにありますか?

私はこれにまったく慣れていません。便利な JAX-WS on WAS v7 の完全なチュートリアル リンクも問題ありません。何時間もグーグルで検索しましたが、何も見つかりませんでした...

4

1 に答える 1

3

直接定義しない場合、デフォルトでは、JAX-WS ランタイムはServiceサービスを実装するクラスにサフィックスを追加しますが、これはすべてのランタイムのルールではありません。デプロイされた WSDL を取得したい場合は、試してください

http://localhost:9080/service/ServiceImplService?wsdl

または

http://localhost:9080/service/ServiceImplService/ServiceImplService.wsdl

パターンURLを変更したい場合

@WebService(serviceName = "EchoService")
public class ServiceImpl implements Service {
    @WebMethod
    public String test(String who) {
        return ("Hello " + who + "!");
    }
}

試す

http://localhost:9080/service/EchoService?wsdl

詳細については、IBM Redbook - Application Server V7.0 を参照してください。Web サービス ガイド

アップデート

EAR を WAS にデプロイする場合、基本構造は次のとおりです。

TestEAR.ear
|   TestWeb.war
|
\---META-INF
        MANIFEST.MF

この EAR への WAR ファイルの構造は次のとおりです。

TestWeb.war
+---META-INF
|       MANIFEST.MF
|
\---WEB-INF
    |   ibm-web-bnd.xml
    |   ibm-web-ext.xml
    |   web.xml
    |
    +---classes
    |   \---org
    |       \---paulvargas
    |           \---test
    |               |   Service.class
    |               |   ServiceImpl.class
    |               |
    |               \---jaxws
    |                       Test.class
    |                       TestResponse.class
    |
    \---lib

この例では、ファイルはオプションです。唯一持っているもの:ibm-web-xxx.xmlMANIFEST.MF

Manifest-Version: 1.0
Class-Path: 

ファイルTest.classTestResponse.class( testWSDL ドキュメント ファイルでの操作用) はwsgen、次のようなコマンドを使用してツールによって生成されます。

wsgen -cp . org.paulvargas.test.ServiceImpl

そしてweb.xml含まれています:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <display-name>TestWeb</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
</web-app>

これwsdlLocationは次のとおりです。

http://localhost:9080/TestWeb/ServiceImplService/ServiceImplService.wsdl

続きを見る:

于 2013-04-30T16:32:52.223 に答える