簡體   English   中英

Java Webservice WSDL加載但不是webservice

[英]Java Webservice WSDL loading but not webservice

我正在嘗試學習如何使用Java創建自己的Web服務以供我自己理解。

當我到localhost:9998 / calculate?wsdl我可以看到我的wsdl文件,但當我到localhost:9998 /計算我看不到我的網絡服務。 我剛剛在chrome中遇到錯誤,說ERR_EMPTY_RESPONSE localhost沒有發送任何數據。

這是我的界面:

package Webservice;


import javax.jws.WebMethod;
import javax.jws.WebService;

//Service Endpoint Interface
@WebService
public interface Calculate{

    @WebMethod 
    public int add(int x, int y);

    @WebMethod 
    public int sub(int x, int y);

    @WebMethod 
    public int mul(int x, int y);
}

這是我的界面實現:

package Webservice;
import javax.jws.WebService;

//Service Implementation
@WebService(endpointInterface = "Webservice.Calculate")
public class CalculateImpl implements Calculate {

    public CalculateImpl() {

    }

    @Override
    public int add(int x, int y) {
        return (x+y);
    }

    @Override 
    public int sub(int x, int y) {
        return (x-y);
    }

    @Override
    public int mul(int x, int y) {
        return (x*y);
    }
}

這是我的出版商:

package Webservice;
import javax.xml.ws.Endpoint;

public class CalculatePublisher {
    public static void main(String[] args) {
        Endpoint ep = Endpoint.create(new CalculateImpl());
        ep.publish("http://localhost:9998/calculate");
    }
}

任何幫助,將不勝感激。

您的網絡服務是正確的。 您需要發送HTTP POST請求。

選項1

您可以使用soapUI( https://www.soapui.org/downloads/soapui.html )對其進行測試。 使用http:// localhost:9998 / calculate?WSDL創建一個新項目

在此輸入圖像描述

在此輸入圖像描述

選項2

您還可以使用curl從命令行測試它

創建soap請求。 我在/var/tmp/calculate_add.xml上創建了它:

me@centos> pwd
/var/tmp
me@centos> cat calculate_add.xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://Webservice/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:add>
         <arg0>1</arg0>
         <arg1>1</arg1>
      </web:add>
   </soapenv:Body>
</soapenv:Envelope>

發送請求。 注意:將String YourServerIP更改為您的真實IP:

me@centos> curl -i -H "Content-Type: text/xml;charset=UTF-8" --data "@/var/tmp/calculate_add.xml" -X POST http://YourServerIP:9998/calculate

回應是:

HTTP/1.1 200 OK
Date: Thu, 09 Mar 2017 08:55:12 GMT
Transfer-encoding: chunked
Content-type: text/xml; charset=utf-8

<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:addResponse xmlns:ns2="http://Webservice/"><return>2</return></ns2:addResponse></S:Body></S:Envelope>

您無法通過簡單的瀏覽器測試Web服務。 您必須編寫Web服務客戶端代碼或需要使用某些工具。 郵差是這樣的工具之一,可用於測試SOAP,REST和任何http服務。

http://blog.getpostman.com/2014/08/22/making-soap-requests-using-postman/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM