2015-04-20 60 views
1

例如:我在我的webservice中有3個類。使用Endpoint類發佈Web Service時,WSDL在哪裏創建?

1 - 甲SEI(Web服務的接口):

package calc; 

import javax.jws.WebService; 
import javax.jws.WebMethod; 
import javax.jws.soap.SOAPBinding; 
import javax.jws.soap.SOAPBinding.Style; 

@WebService 
@SOAPBinding(style = Style.RPC) 
public interface CalculatorServer { 
    @WebMethod float sum(float num1, float num2); 
    @WebMethod float subtraction(float num1, float num2); 
    @WebMethod float multiplication(float num1, float num2); 
    @WebMethod float division(float num1, float num2); 
} 

2 - 甲SIB(該接口的implemetation)

package calc; 

import java.util.Date; 
import javax.jws.WebService; 

@WebService(endpointInterface = "calc.CalculatorServer") 
public class CalculatorServerImpl implements CalculadoraServer { 

    public float sum(float num1, float num2) { 
     return num1 + num2; 
    } 

    public float subtraction(float num1, float num2) { 
     return num1 - num2; 
    } 

... 

} 

3 - 和類負責出版它

package calc; 

import javax.xml.ws.Endpoint; 

public class CalculadoraServerPublisher { 

    public static void main(String[] args) 
    { 
     Endpoint.publish("http://127.0.0.1:9876/calc", 
     new CalculadoraServerImpl()); 
    } 
} 

如果我跑第三類訪問這個地址:

http://127.0.0.1:9876/calc?wsdl 

我將看到我的Web服務的WSDL。現在問題來了:如果我可以訪問它,它位於我的計算機的某個位置,但是...在哪裏?我試圖使用我知道的每個Windows搜索引擎(我使用Windows 8.1),但他們都無法找到它。畢竟,它在哪裏?

回答

1

在您的示例中,當訪問地址時,WSDL合約在運行時按需生成。這就是爲什麼在驅動器的任何位置都找不到物理WSDL文件的原因。

如果仔細觀察URL,它不會指向物理.wsdl文件:http://127.0.0.1:9876/calc?wsdl。它只是問號後面的查詢字符串。

如果您需要更多信息,請參閱this tutorial