2017-06-10 13 views
0

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ではなくドキュメントです。 私の間違いを是正する助けてくれますか?

ありがとうございます!

+0

あなたのwsdlまたはコードにはどのような名前が表示されますか? – jeorfevre

+0

@jeorfevreクラスにserviceName = "ADOnlineShopping"というアノテーションを付けました。したがって、** ADOnlineShopping **はデフォルト名ではなくサービス名である必要があります。右 ? –

答えて

0

RPCエンコードされたwsdlは、JAX ws 2.0/2.2などではサポートされていません。このため、wsdlには更新がありません。新しいプロジェクトを開始する場合は、jersey webserviceの実装に進むようにアドバイスします。これは簡単でクリーンなコードです。あなたのwsdlは自動生成されます。

+0

また、SOAP RPCは一種/旧式形式です。それのために行かない方がいいです...ジャージー/スプリングなどのような別のフレームワークを使うのが簡単になります... – jeorfevre

関連する問題