2014-01-07 127 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的网址是什么? –