コード開発を実現するNC環境をローカルに構築
1. Eclipse と NC5.7 をダウンロードし、JDK パスを 32 ビットに設定します
2.NC プロジェクト コードをプルします。
3. 構成環境
4. サーバーとクライアントを起動します
5. インターフェースサービスの開発
5.1 新しいテスト インターフェイスと対応する実装クラスを作成する
5.2 upmファイルの書き込み
<?xml version='1.0' encoding='UTF-8'?>
<module name="xljt">
<public>
<component remote="true" singleton="true" tx="CMT">
<interface>nc.itf.webapi.Test</interface>
<implementation>nc.impl.xljt.TestServiceImpl</implementation>
<extension class="nc.uap.ws.deploy.OxbWSExtensionProcessor">
<wsdl>/nc/itf/webapi/Test.wsdl</wsdl>
<address>/nc.itf.webapi.Test</address>
</extension>
</component>
</public>
</module>
5.2 wsdl ファイルの生成
5.3 パブリック Web サービス
、
6. インターフェースサービスの展開
6.1 パッチをエクスポートし、インターフェイス コードを nchome に配置します。
6.2 エクスポートした nc 圧縮パッケージの modules フォルダーを nc のルート ディレクトリに置き、元の modules フォルダーを置き換えます
6.3 %nchhome%\bin\ncSysConfig.batを実行する
6.4 クリックし部署EJB
て展開が完了するまで待ちます
注: 最初に Eclipse を閉じる必要があります。そうしないと、デプロイメントが失敗します。
7. SOAP UI ツールを使用してインターフェイスをテストします
7.1 ミドルウェアを起動した後、localhost/uapws/serviceにアクセスします。
7.2 テストされたインターフェイスを見つけて、インターフェイス アドレスをコピーします。
7.3 Web サービス インターフェイス テスト ツール SOAP UI を使用してテストする
8. プロジェクト内のインターフェースをテストします - wsimport コマンドを使用します
8.1 wsimport コマンドを使用して生成されたローカル Java コード
http://localhost/uapws/service/nc.itf.webapi.Test?wsdl
8.2 生成されたコードをプロジェクトに移動する
8.3 テストインターフェース
@RequestMapping("/test2")
public String test2() {
Test_Service test_service = new Test_Service();
String result = test_service.getTestSOAP11PortHttp().test("ddadfa");
return result;
}
9. プロジェクト内のインターフェイスをテストします - サードパーティの依存パッケージを導入します
9.1 依存関係のインポート
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis-jaxrpc</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis-saaj</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.3</version>
</dependency>
9.2 wsdl サービスを呼び出すコードを作成する
@RequestMapping("/test")
public String test() {
String result = null;
try {
Service service = new Service();
Call call = (Call) service.createCall();
// wsdl完整地址
call.setTargetEndpointAddress(new URL("http://localhost/uapws/service/nc.itf.webapi.Test"));
/**
* 设置方法名
* new QName(String namespaceURI, String localPart) namespaceURI即为wsdl中的targetNamespace, localPart即为接口名
*/
call.setOperationName(new QName("test"));
/**
* 添加参数
* addParameter方法的参数包括:参数名(namespace+参数名)、参数类型、ParameterMode(入参即为IN)
*/
call.addParameter("string", XMLType.XSD_STRING, ParameterMode.IN);
// call.setUseSOAPAction(true);
// SOAPActionURI格式为targetNamespace+方法名
// call.setSOAPActionURI("http://webapi.itf.nc/Test/test");
// 指定返回值类型,为字符串
call.setReturnType(XMLType.XSD_STRING,String.class);
result = (String) call.invoke(new Object[]{
"手机号码"});
System.out.println(result);
} catch (Exception e) {
throw new RuntimeException(e);
}
return result;
}