2014-01-07 92 views
0

我試圖開發安全的Web服務與SSL/HTTPS。所以我創建的服務器&客戶端密鑰庫文件按照(link)及以下的服務器&客戶端的代碼,但客戶端代碼被拋出異常如下:發行啓用SSL爲Axis2 Web服務

com.sun.xml.ws.model.RuntimeModelerException: A WebService annotation is not present on class: com.heb.service.WpcimService 
    at com.sun.xml.ws.model.RuntimeModeler.getPortTypeName(RuntimeModeler.java:1604) 
    at com.sun.xml.ws.model.RuntimeModeler.getPortTypeName(RuntimeModeler.java:1597) 
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:413) 
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:433) 
    at javax.xml.ws.Service.getPort(Unknown Source) 
    at com.heb.client.WpcimClient.main(WpcimClient.java:32) 

Server代碼:

public class SampleWebService { 

    public String method(String plainNumericCCNum) 
    { 
     return value; 
    } 

客戶端代碼:

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

import javax.xml.namespace.QName; 


public class WebServiceClient { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     System.out.println("Wpcim Client"); 
     try 
     { 
     System.setProperty("javax.net.ssl.trustStore","d:/client.keystore"); 
     System.setProperty("javax.net.ssl.trustStorePassword","changeit"); 

     URL url = new URL("https://localhost:8443/Mywebservice/services/SampleWebService?wsdl"); 
     QName qname = new QName("http://service.client.com", "SampleWebService"); 

     Service service = Service.create(url, qname); 

     SampleWebService hello = service.getPort(SampleWebService.class); 
     System.out.println(hello.method("1234")); 

     }catch(Exception ex){ 
      ex.printStackTrace(); 
     } 
    } 

} 

請幫我弄清楚,這可能是什麼問題? 在此先感謝。

+0

'com.heb.service.WpcimService'在哪裏? –

+0

抱歉,由於審計目的,我將類名重命名爲SampleWebService。所以第一個是你問的那個。 – user1280096

回答

0

在你的服務器代碼,你需要添加@WebService註解。即您的代碼應該看起來像

@WebService(
     portName = "Port name here", 
     serviceName = "Service name here", 
     targetNamespace = "your tns here") 
public class SampleWebService { 

    public String method(String plainNumericCCNum) 
    { 
     return value; 
    } 
} 
+0

我得到異常下面當我添加註釋以上: HTTP狀態404 - https://開頭本地主機:8443/WpcimEncodeDecode /服務/ WpcimService 類型狀態報告 消息的https://本地主機:8443/WpcimEncodeDecode /服務/ WpcimService 描述所請求的資源不可用。 Apache Tomcat/7.0.42 也出現在客戶端拋出的以下錯誤 線程「main」中的異常javax.xml.ws.WebServiceException:未能在以下位置訪問WSDL:https:// localhost:8443/WpcimEncodeDecode/services/WpcimService?WSDL。它失敗: \t的https://本地主機:8443/WpcimEncodeDecode /服務/ WpcimService WSDL。 – user1280096

+0

這是我補充說:@WebService(PORTNAME = 「SampleWebServicePort」,服務名= 「service.aaa.com」 ;,的targetNamespace = 「SampleWebService」) – user1280096

+0

你能打開瀏覽器WebService的網址是什麼? –