0

私はこのチュートリアルに従っています

この単純な Web サービスを作成しました

package com.examples.services;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public class HelloWeb {

    @WebMethod
    public String sayHi(String name) {
        return "Hi " + name;
    }
}

そしてこの単純なサーバー:

package com.examples.services;

import javax.xml.ws.Endpoint;

public class Server {
    public static void main(String args[]) {
        Endpoint.publish("http://localhost:9898/HelloWeb", new HelloWeb());
        System.out.println("here we go");
    }
}

WSDL を取得するためにテストすると、問題なく動作し、次の xml の結果が得られます。

<?xml version="1.0" encoding="UTF-8" ?> 
- <!--  Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. 
  --> 
- <!--  Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. 
  --> 
- <definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://services.examples.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://services.examples.com/" name="HelloWebService">
- <types>
- <xsd:schema>
  <xsd:import namespace="http://services.examples.com/" schemaLocation="http://localhost:9898/HelloWeb?xsd=1" /> 
  </xsd:schema>
  </types>
- <message name="sayHi">
  <part name="parameters" element="tns:sayHi" /> 
  </message>
- <message name="sayHiResponse">
  <part name="parameters" element="tns:sayHiResponse" /> 
  </message>
- <portType name="HelloWeb">
- <operation name="sayHi">
  <input message="tns:sayHi" /> 
  <output message="tns:sayHiResponse" /> 
  </operation>
  </portType>
- <binding name="HelloWebPortBinding" type="tns:HelloWeb">
  <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> 
- <operation name="sayHi">
  <soap:operation soapAction="" /> 
- <input>
  <soap:body use="literal" /> 
  </input>
- <output>
  <soap:body use="literal" /> 
  </output>
  </operation>
  </binding>
- <service name="HelloWebService">
- <port name="HelloWebPort" binding="tns:HelloWebPortBinding">
  <soap:address location="http://localhost:9898/HelloWeb" /> 
  </port>
  </service>
  </definitions>

しかし、次のようなWebサービスクライアントを作成しようとしたとき:

<project name="My Web Service Build" default="wsimport">

    <target name="wsimport">

        <exec executable="wsimport">

            <arg line="-keep -s ./src -p com.examples.services.client http://localhost:9898/HelloWeb?wsdl"/>

        </exec>           

    </target>



</project>

そのクライアントを実行すると、次の例外が発生しました。

Buildfile: C:\Users\User\workspace\MyWebService\wsbuild.xml
wsimport:

BUILD FAILED
C:\Users\User\workspace\MyWebService\wsbuild.xml:5: Execute failed: java.io.IOException: Cannot run program "wsimport": CreateProcess error=2, The system cannot find the file specified

Total time: 646 milliseconds

私はWebサービスに非常に慣れていません

編集後

ここに画像の説明を入力

4

1 に答える 1

1

環境変数で、jdk bin フォルダーがパス上にあることを確認してください。次の手順に従ってください: http://java.com/en/download/help/path.xml

フォルダは C:\Program Files\java\jdk1.7.0_09\bin のようなものになります

新しいコマンド プロンプト ウィンドウを開き、java -versionこれが機能するかどうかを入力してテストできます。bin フォルダーはパスにあります。

また、動作することも確認してくださいjavac -version。最初は機能するが、これが機能しない場合は、パスに JDK ではなく JRE があることを意味します。


以下をせよ:

  1. EclipseWindow->Preferences->Installed JREsで、ここにインストールした JDK を見つけます。
  2. 環境プロパティを開きます (マイ コンピューターを右クリック -> プロパティ -> [詳細設定] をクリックし、[環境変数] をクリックします)。
  3. システム変数で、パス変数を見つけて編集をクリックします。
  4. このパス変数は、セミコロンで区切られたフォルダのリストです。Java 用の既存のものを見つけて削除します。次に、手順 1 の Eclipse で見つけた JDK の場所を末尾に追加し、その後に /bin を追加します。

例 mypathvar;C:\Program Files\Java\jdk1.6.0_37\bin

[OK] を押してから、新しいコマンド プロンプトjavac -versionを開いて と入力します。これで機能するはずですが、新しいコマンド プロンプトを開く必要があります。うまくいかない場合は、パス変数に Java を追加する方法を Google で確認してください。

Eclipse で JDK が見つからない場合は、いつでもダウンロードできます (google "download JDK")。

于 2013-02-21T08:37:17.380 に答える