私のWebServiceクラスに対してwsgenを適切に使用する場所(どのディレクトリ - ソースまたはクラス)がわからないようです...
サンプル ドキュメント リテラル ベースの WebService を作成します。
package hello;
import javax.jws.WebService;
@WebService
public class HelloWorld {
public void sayHello() {
System.out.println("Welcome to JAX-WS 2!");
}
}
次のようにパブリッシャーを作成しました。
package hello;
import javax.xml.ws.Endpoint;
public class Publisher {
public static void main(String[] args) {
Endpoint.publish("http://localhost:8080/jaxws/hello", new HelloWorld());
}
}
Eclipse Helios を使用して、これらの両方のファイルを、対応するクラス ディレクトリの下に *.classes として自動的にビルドします。
したがって、ファイルシステムから、私のプロジェクトは次のようになります。
/code/jws_sample
|
src
|
hello
|
HelloWorld.java
Publisher.java
|
classes
|
HelloWorld.class
Publisher.class
どのディレクトリで wsgen を実行しますか?
内部で試したところ:
/code/jaxws_sample/src/wsgen -cp . hello.HelloWorld
受け取った:
Class not found: "hello.HelloWorld"
Usage: WSGEN [options] <SEI>
where [options] include:
-classpath <path> specify where to find input class files
-cp <path> same as -classpath <path>
-d <directory> specify where to place generated output files
-extension
allow vendor extensions - functionality not specified
by the specification. Use of extensions may
result in applications that are not portable or
may not interoperate with other implementations
-help display help
-keep keep generated files
-r <directory> resource destination directory, specify where to
place resouce files such as WSDLs
-s <directory> specify where to place generated source files
-verbose output messages about what the compiler is doing
-version print version information
-wsdl[:protocol] generate a WSDL file. The protocol is optional.
Valid protocols are [soap1.1, Xsoap1.2],
the default is soap1.1.
The non stanadard protocols [Xsoap1.2]
can only be used in conjunction with the
-extension option.
-servicename <name> specify the Service name to use in the generated WSDL
Used in conjunction with the -wsdl option.
-portname <name> specify the Port name to use in the generated WSDL
Used in conjunction with the -wsdl option.
Examples:
wsgen -cp . example.Stock
wsgen -cp . example.Stock -wsdl -servicename {http://mynamespace}MyService
実際にはブラウザに WSDL が表示されます。また、$MyProject/classes から wsgen コマンドを発行しようとすると、実際には SayHelloResponse.class ファイルを含む jaxws フォルダーが作成されましたが、SayHelloResponse.java ファイルは作成されませんでしたか?
これを読んでいただきありがとうございます。