Webサービス(SOAP)を初めて使用しています。だから私は、サンプルのwebserviceを作成し、それをglassfish severを使って展開しようとしています。私はサービスを作成し、サービスをデプロイし、WSDLがデフォルト名で生成されることを確認できました(これは問題ありません)。今私は、アノテーションを使用して名前といくつかのことを上書きしようとしていますが、彼らは、WSDLで更新取得されていません。注釈を使用してWSDLが更新されない
package com.soap.test;
import java.util.ArrayList;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
@WebService(name="ADOnlineStore", portName="ADOnlineStorePort", serviceName="ADOnlineShopping",
targetNamespace="http://org.AD.com")
@SOAPBinding(style=Style.RPC)
public class GetProducts {
@WebMethod
public List<String> getProductList() {
List<String> list = new ArrayList<>();
list.add("Books");
list.add("Movie");
list.add("Show");
return list;
}
}
とそれに対応するWSDLは::
<definitions targetNamespace="http://test.soap.com/" name="GetProductsService"><types><xsd:schema><xsd:import namespace="http://test.soap.com/" schemaLocation="http://mrcool-pc:8080/WebServices/GetProductsService?xsd=1"/></xsd:schema></types><message name="getProductList"><part name="parameters" element="tns:getProductList"/></message><message name="getProductListResponse"><part name="parameters" element="tns:getProductListResponse"/></message><portType name="GetProducts"><operation name="getProductList"><input wsam:Action="http://test.soap.com/GetProducts/getProductListRequest" message="tns:getProductList"/><output wsam:Action="http://test.soap.com/GetProducts/getProductListResponse" message="tns:getProductListResponse"/></operation></portType><binding name="GetProductsPortBinding" type="tns:GetProducts"><soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/><operation name="getProductList"><soap:operation soapAction=""/><input><soap:body use="literal"/></input><output><soap:body use="literal"/></output></operation></binding><service name="GetProductsService"><port name="GetProductsPort" binding="tns:GetProductsPortBinding"><soap:address location="http://mrcool-pc:8080/WebServices/GetProductsService"/></port></service></definitions>
である私のWSDLは、まだ持っていますデフォルトの名前とタイプ、つまりRPCではなくドキュメントです。 私の間違いを是正する助けてくれますか?
ありがとうございます!
あなたのwsdlまたはコードにはどのような名前が表示されますか? – jeorfevre
@jeorfevreクラスにserviceName = "ADOnlineShopping"というアノテーションを付けました。したがって、** ADOnlineShopping **はデフォルト名ではなくサービス名である必要があります。右 ? –