ホームページ  >  記事  >  Java  >  Webサービスサーバーを開発するためのサンプルチュートリアル

Webサービスサーバーを開発するためのサンプルチュートリアル

零下一度
零下一度オリジナル
2017-06-27 09:28:571984ブラウズ

前に書いた:

現在、cxf など、Web サービスを開発するためのメソッドやフレームワークは数多くありますが、これらはすべてサービス クラスを記述するときにアノテーション機能を必要とします。現在のjdkが1.4の場合、アノテーション機能は使用できません。したがって、ここでは軸ツールを使用できます。

1. 必要な jar パッケージ:

2. 通常、Web サービスは仕事で Web プロジェクトで使用されるため、Web プロジェクトを作成し、必要な jar パッケージを Web 内の lib ディレクトリに配置します。 xml ファイルに、

<servlet>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  </servlet>
  <!-- 这里是访问服务的路径 -->
  <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>

を追加します。 4. サービスクラス、インターフェイス、実装クラスを作成します。最初はインターフェイス
package edu.hue.server;public interface SayHello {public String say(String name);
}

です。次に、インターフェイス
package edu.hue.server;public class SayHelloImpl implements SayHello{public String say(String name) {return "Hello my friend " + name;
    }

}

の実装クラスを作成します。 WEB-INF の下に server-config.wsdd を作成します (このファイルを直接作成し、次のコードをコピーして、必要に応じて独自のサービスの構成を追加します。実際、このファイルは自分で生成できます。作成する必要があります)プロジェクトを開始すると、server-config.wsdd が​​自動的に生成されます。このプロセスは、server-config.wsdd に独自のサービスを追加するだけです。 first)

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <!-- 这里的globalConfiguration暂时不用管是什么意思,可以先注释掉,不影响结果 
<globalConfiguration>
  <parameter name="sendMultiRefs" value="true"/>
  <parameter name="disablePrettyXML" value="true"/>
  <parameter name="adminPassword" value="admin"/>
  <parameter name="attachments.Directory" value="E:\sotfWares\sotfware\Tomcat\apache-tomcat-7.0.62-windows-x86\apache-tomcat-7.0.62\webapps\test_axis3\WEB-INF\attachments"/>
  <parameter name="dotNetSoapEncFix" value="true"/>
  <parameter name="enableNamespacePrefixOptimization" value="false"/>
  <parameter name="sendXMLDeclaration" value="true"/>
  <parameter name="sendXsiTypes" value="true"/>
  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
  <requestFlow>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="session"/>
   </handler>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="request"/>
    <parameter name="extension" value=".jwr"/>
   </handler>
  </requestFlow>
 </globalConfiguration> -->

 <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
 <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
 <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
 <!-- 
    这里的几个服务也可以先注释掉 这是自带的服务 注释后就只显示自己的服务<service name="AdminService" provider="java:MSG">
  <parameter name="allowedMethods" value="AdminService"/>
  <parameter name="enableRemoteAdmin" value="false"/>
  <parameter name="className" value="org.apache.axis.utils.Admin"/>
  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
 </service>
 <service name="Version" provider="java:RPC">
  <parameter name="allowedMethods" value="getVersion"/>
  <parameter name="className" value="org.apache.axis.Version"/>
 </service> -->
 <transport name="http">
  <requestFlow>
   <handler type="URLMapper"/>
   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  </requestFlow>
  <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
  <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
 </transport>
 <transport name="local">
  <responseFlow>
   <handler type="LocalResponder"/>
  </responseFlow>
 </transport>
 
 <!-- 配置自己的服务  -->
 <service name="sayHello" provider="java:RPC">
       <parameter name="className" value="edu.hue.server.SayHelloImpl" />
       <parameter name="allowedMethods" value="*" />
 </service>
 
</deployment>

パラメータの説明: name: ここでのサービスの名前はsayHelloと呼ばれ、次の値「ここに入力するのはサービスの実装クラスのフルパスです」。ほぼこれらの2つのパラメータが必要です。以上です
6. プロジェクトを実行し、ブラウザに「localhost:8080/test_axis3_stub/services」と入力して Enter キーを押すと、アクセスできるようになります。

localhost:8080/test_axis3_stub (プロジェクト名)/services (サービスのアクセスパスは web.xml の interception/services/* で設定されているため、アクセスするには services を入力するだけで済みます)

ここで述べたことはすべて簡単ですBean の転送など、複雑なパラメータが関係する場合は、さらに検討する必要があります。 (server-config.wsddでサービスを設定する際にも関連する設定を行う必要があるようです)

以上がWebサービスサーバーを開発するためのサンプルチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。