使用した教材:「JavaWebサービスの構築と運用」この記事がお役に立てば、気に入ってフォローしてください。
6時間の実験トピック:①Webサービス環境の構築; ②HttpServletクラスとしてのRESTサービス; ③JAX-RSWebサービス; ④JAX-RSクライアント;⑤JAX -RSクライアント;⑥WSDLサービス契約
この実験に必要なすべてのコード(明確にするためにすでに整理されています): https: //download.csdn.net/download/qq_41587612/12517176
上記にはポイントが必要です。ポイントがない場合は、Githubからダウンロードできます:https://github.com/PigeonIsSmart/SOA-WebService
●常见报错:ローカルホストのTomcat v7.0サーバーに必要ないくつかのポート(8005、8080、8009)はすでに使用されていますか?
解決策:https ://blog.csdn.net/xiaopingga/article/details/84988526
●よくある質問:Windowsコンソールcmdの中国語の文字化け?
恒久的な解決策:https ://blog.csdn.net/qq_35038153/article/details/78430359
●一般的なHttp応答ステータスコード?
実験1Webサービス環境の構築(初心者でない場合はスキップできます。簡単に説明してください)
1.実験の目的
- Java環境のインストールをマスターします。
- 日食の基本的な使い方をマスターしましょう。
- JavaWebプロジェクトの作成方法を学びます。
2.実験内容
1.Java環境のインストールと構成。
1)Javaダウンロードアドレス
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Webサイトのバージョンに応じて、システムに適したバージョンをダウンロードしてください。
2)Javaのインストール
3)JAVA_HOME配置。
i。システムの詳細設定を開く
ii。[環境変数]をクリックします
iii。システム変数にJAVA_HOMEという名前の環境変数を作成します。変数値はJAVAのインストールディレクトリです。
4)システム変数でパスを見つけ、変数値の最後にセミコロン「;」を追加してから、Javaをインストールしたパスとビンをコピーして[OK]をクリックします。
5)インストールが成功したかどうかを確認します。
i。CMDにjava-versionと入力します。Javaのバージョン番号が表示されれば、インストールは成功しています。
2.Eclipseを使用して新しいJavaWebプロジェクトを作成します。
1)Tomcatを構成します
i。ウィンドウタブの下の設定を開きます
ii。Tomcatを構成します
2)新しいjava_webアプリケーションを作成します
i。動的Webプロジェクトを選択します
ii。プロジェクト名を取得し、Tomcatを選択して、[次へ]をクリックします
iii。[生成]を選択し、[完了]をクリックします。
3.プログラムを実行し、出力結果を出力します。
1)WebContextでindex.jspを作成します
2)jspを変更し、プロジェクトを右クリックして[サーバーとして実行]を選択します(学生自身の名前と学生IDを表示する必要があります)
3.実験要件
- 学生は、Java環境のインストールプロセスに習熟している必要があります。
- eclispでTomcatを構築する方法を学びます。
- Eclipseを使用してWebプロジェクトを作成する方法を学びます。
- Tomcatサーバーを使用してJavaWebプログラムを実行する方法を学びます。
4.実験結果
実験2:HttpServletクラスとしてのRESTfulサービス
1.実験の目的
- HttpServletクラスとしてのRESTfulサービスに精通している。
2.実験内容
1.新しいprediction2プロジェクトを作成します。
2.新しいprediction2パッケージを作成し、JerseyClient、Prediction、Predictions、およびPredictionsServletクラスを作成します。(リソースパックは以下に提供されます!)
3.必要なJarパッケージをインポートし、データファイルをインポートします。
4.web.xmlを変更します
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>predictor</servlet-name>
<servlet-class>predictions2.PredictionsServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>predictor</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
5.プロジェクトを実行します
3.実験要件
- 予測2スタイルのサーブレットサービスの構築をマスターします。
第四に、実験プロセスとスクリーンショット
違い:Eclipseでの実行結果の最初の行にはテキストの説明はありませんが、ブラウザーにはあります。
実験3JAX-RSWebサービス
http://www.jquerycn.cn/a_17530を参照してください。植字は直接見るのに耐えられませんが、一部のコードには詳細な中国語のコメントがあります。私が提供した情報パッケージのコードは英語のコメントです。
1.実験の目的
- JAX-RSを使用してRESTfulサービスフレームワークを実装する方法を学びます。
- curlを使用してHTTPリクエストを送信する方法を学びます。
2.実験内容
1. JAX-RSは、RESTfulWebサービス用のJavaAPIの略です。これは、JavaRestfulサービスの開発を迅速かつ簡単にすることができるJavaAPIです。このAPIは、分散リソースを記述するためのアノテーションベースのモデルを提供します。注釈は、リソースの場所、リソースの表現、およびプラグ可能なデータバインディングアーキテクチャを提供するために使用されます。
2.curlのダウンロードと構成
1)ダウンロードアドレス:https://curl.haxx.se/download.htmlシステムバージョンに適したカールを選択してください
2)curl(win64)のインストールと構成
i。インストールパッケージを解凍します
ii。curl環境変数を構成します(パスは解凍後のcurlのファイルパスです)
Xiaobaiの補足説明:デスクトップの[このコンピューター]を右クリックし、[プロパティ]を選択し、ポップアップウィンドウの左側にある[システムの詳細設定]を選択し、ポップアップの下部にある[環境変数]を選択します。上のウィンドウで、ポップアップウィンドウの[システム変数]をクリックします。①新しい「CURL_HOME」を作成します。変数値は「curldecompressionpath」です。②「Path」を編集し、右側の「end」ボタンを押します。キーボードの(無効な場合は、最初に「numlock / scrlock」を押します[「numlk」を知らない」と略します。もう一度「end」を押します)「変数値」の最後に戻り、「curl'sbin」を追加しますセミコロンの後のパス」。
3. JAX-RSを使用して、RESTfulサービスフレームワークを構築します。
1)新建Prediction、PredictionsList、PredictonsRS、RestfulPredictionクラス。
2)新しいWebプロジェクトを作成します
3)jarパッケージとデータファイルをインポートします
4)web.xmlを変更します
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>jersey</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
</web-app>
5)プロジェクトを実行します(注:データパッケージのreadmeファイルに書き込まれるアクセスパスは404になりますが、パスの後に/ xmlまたは/ jsonを追加することでアクセスできます)
4.カールの使用
1)cmdに次のコマンドを1つずつ入力して、出力結果を表示します。
私。curl http:// localhost:8080 / JAX-RS / resourcesP / xml
ii。curl http:// localhost:8080 / JAX-RS / resourcesP / json
2)PredictionsRS.javaを表示し、curlを使用してID1のコンテンツをxml形式で出力します。
3.実験要件
- 学生は、JAX-RSを使用して単純なRESTfulサービスフレームワークを習得する必要があります。
- curlのインストールと構成、および使用方法を学びます。
第四に、実験プロセスとスクリーンショット
実験4JAX-RSクライアント
1.実験の目的
- JAX-RSクライアントの構築をマスターします。
- 予測2RESTベースのサービス用のクライアントを作成します。
- クライアントとサーバー間の相互作用を理解します。
2.実験内容
1.新しいpredictions2サービスを作成します。
2.プロジェクトRunonServerを右クリックします
3. Forecasts2パッケージの下に新しいJerseyClientクラスを作成し、必要なjarパッケージをインポートします。
4. JerseyClientクラスを右クリックし、[JavaApplicationとして実行]を選択します。コンソール操作の結果を表示します。
5. JerseyClient.javaを変更し、id = 10のデータを出力および削除するように要求します。出力形式は、JSONです。変更されたコード▼
package predictions2;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import javax.ws.rs.core.MediaType;
import com.sun.jersey.api.representation.Form;
public class JerseyClient {
private static final String baseUrl = "http://localhost:8080/predictions2";
public static void main(String[] args) {
new JerseyClient().demo();
}
private void demo() {
Client client = Client.create();
client.setFollowRedirects(true); // in case the service redirects
WebResource resource = client.resource(baseUrl);
getAllDemo(resource);
postDemo(resource); // same resource but different verb
String url = baseUrl + "?id=10";
resource = client.resource(url);
getOneDemo(resource);
deleteDemo(resource); // delete id = 10
}
private void getAllDemo(WebResource resource) {
String response = resource.accept(MediaType.APPLICATION_JSON_TYPE).get(String.class);
report("GET all in JSON:\n", response);
}
private void getOneDemo(WebResource resource) {
String response = resource.accept(MediaType.APPLICATION_JSON_TYPE).get(String.class);
report("GET one in JSON:\n", response);
}
private void postDemo(WebResource resource) {
Form form = new Form(); // HTTP body, a simple hash
form.add("who", "William Butler Yeats");
form.add("what", "I know that I shall meet my fate");
String response = resource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).accept
(MediaType.TEXT_PLAIN_TYPE).post(String.class, form);
report("POST:\n", response);
}
private void deleteDemo(WebResource resource) {
String response = resource.accept(MediaType.TEXT_PLAIN_TYPE).delete(String.class);
report("DELETE:\n", response);
}
private void report(String msg, String response) {
System.out.println("\n" + msg + response);
}
}
3.実験要件
- 学生はJAX-RSクライアントの構成をマスターする必要があります。
- プログラムは正常に呼び出され、変更されました。
第四に、実験プロセスとスクリーンショット
次の写真はJerseyClient.javaの実行結果であり、内容は非常に長く、理解しやすいように一部が切り取られています。
上記の3つの写真は連続しています。第0条から数えると、プログラムは最初に第31条(最後の1つ)の予測を削除し、予測を追加したことがわかります(「運命を迎えることを知っています」が31の新しい予測になります) [HTTP本文、単純なハッシュ]、「id = 10のデータを出力して削除し、出力形式はJSON」に変更する必要があります。
JerseyClient.java(合計59行のコード)を確認するだけで、変更/読み取りが非常に簡単です。恐れることはありません。
変更後の実行(継続)結果は次のとおりです。
以下の条件がある場合は、サーバーで再実行してから、JavaApplicationとして実行してください。!!
JerseyClient.javaは一度実行されました。JavaApplicationとして実行をもう一度繰り返すと、次のようになります▼
実験5JAX-RSクライアント
1.実験の目的
- RESTクライアントの構築をマスターします。
- 予測3サービスに基づいてクライアントを作成します。
- クライアントとサーバー間の相互作用に精通している。
2.実験内容
1.新しいpredictions3プロジェクトを作成します。
2.サーバーで実行されているプロジェクトを右クリックします。
3.クライアントパッケージを作成し、その中にJavaクラスを作成して、jarパッケージをインポートします。
4. JerseyClientクラスを右クリックし、[JavaApplicationとして実行]を選択します。コンソール操作の結果を表示します。
3.実験要件
- 学生はRESTクライアントの構成をマスターする必要があります。
- プログラムは正常に呼び出され、変更されました。
4.実験結果
毎日警告を無視します。。。クライアントパッケージ(パッケージ)を作成し、クラスとjarパッケージをインポートし、Predictions3Clientクラスを右クリックして、JavaApplicationとして実行します。
実験6WSDLサービス契約
1.実験の目的
- Javaコードを使用してエンドポイントを公開する方法を学びます。
- WSDLの役割を理解します。
2.実験内容:
- 新しいプロジェクトを作成する
- 新しいRandPublisher、RandServiceクラスを作成します。
- jarパッケージとxmlをインポートします
- web.xmlを変更します
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:web="http://xmlns.jcp.org/xml/ns/javaee"> <listener> <listener-class> com.sun.xml.ws.transport.http.servlet.WSServletContextListener </listener-class> </listener> <servlet> <servlet-name>jaxws</servlet-name> <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jaxws</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
- プロジェクトを実行する
-
RandPublisherクラスを実行し、ブラウザにhttp:// localhost:8888 / wsと入力します。
3.実験要件
- Javaコードを使用してエンドポイントを公開する方法を学びます。
- WSDLの役割を把握します。
- コードは正常にデバッグされました。
4、実行中の結果
先JavaApplicationで実行、サーバーとして実行!