2017-08-17 3 views
1

私はこれは私がそれをやろうとしていますどのようにされているJava 8の最小限のJSON Webサービスを作るしようとしています:私は私の中でURLを打ったとき、のJava SE 8:最小限のJSONのWebサービス

import javax.jws.WebMethod; 
import javax.jws.WebService; 
import javax.xml.ws.Endpoint; 

@WebService 
public class DemoHttpServer { 

    @WebMethod 
    public double square(double num) { 
     return num * num; 
    } 

    public static void main(String[] args) throws InterruptedException { 
     String address = "http://192.168.2.66:8080/demo"; 
     Endpoint.publish(address, new DemoHttpServer()); 

     System.out.println("Service running at " + address); 
     System.out.println("Type Ctrl+c to exit"); 

     Thread.sleep(Long.MAX_VALUE); 
    } 

} 

しかし、ブラウザ、私はERR_EMPTY_RESPONSEを取得します。誰も私に行方不明を教えてもらえますか?私はこれのために外部ライブラリを使用したくありません。

+0

「http://192.168.2.66:8080/demo?wsdl'」とヒットした場合はどうなりますか? – yishaiz

+0

@yishaiz、そのXMLのかなりのビット。ここに貼り付けることはできません。 –

答えて

0

ERR_EMPTY_RESPONSEエラーが発生した正確なURLは書き込まれませんでしたが、wsdlが機能していると言いますが、WSが機能するはずです。

あなたは、SOAP Webサービスを持っているので、あなたは(http://192.168.2.66:8080/demo/DemoHttpServerServiceに位置しています)あなたのサービスを呼び出すために(もhere参照)soapuiまたはpostmanを使用することができます。

また、WSDLからJAX-WS Javaクライアントを生成することもできます。たとえば、Eclipseにはそのためのツールがあります。あなたのWS用のJavaを実際に使用するには、このようなものを使うべきです。あなたのプロジェクトでそれをしようとすると、Javaパッケージ名に

package another; 

import javax.jws.WebService; 

@WebService 
public interface IWebServiceTest { 
    double square(double num); 
} 

package another; 

import java.net.URL; 
import javax.xml.namespace.QName; 
import javax.xml.ws.Service; 

public class Main { 
    public static void main(String[] args) throws Exception { 
     String url = "http://192.168.2.66:8080/demo/DemoHttpServerService?wsdl"; 
     String namespace = "http://another/"; 
     QName serviceQN = new QName(namespace, "DemoHttpServerService"); 
     Service service = Service.create(new URL(url), serviceQN); 

     String portName = "DemoHttpServerPort"; 
     QName portQN = new QName(namespace, portName); 

     IWebServiceTest sample = service.getPort(portQN, IWebServiceTest.class); 
     double result = sample.square(3); 
     System.out.println(result); 
    } 
} 

ご注意:

そして最後に、あなただけ(hereから適応)テストのために、あなたのサービスを呼び出す簡単なプログラムを書くことができます。

関連する問題