2014-01-07 7 views
0

Я пытаюсь разработать безопасный веб-сервис с помощью SSL/HTTPS. поэтому я создал сервер & клиента хранилищу файл как в (link) и ниже сервера & клиентского кода, но код клиента был выброшен ниже исключения:Проблема Включение SSL для веб-служб Axis2

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) 

Серверный код:

public class SampleWebService { 

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

Client код:

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 Status 404 - https: // Localhost: 8443/WpcimEncodeDecode/услуги/WpcimService Тип отчета Статус HTTPS сообщение: // Localhost: 8443/WpcimEncodeDecode/услуги/WpcimService описание Запрошенный ресурс недоступен. Apache Tomcat/7.0.42 также ниже ошибки, брошенной в клиенте Исключение в потоке "основного" javax.xml.ws.WebServiceException: Не удалось получить доступ к WSDL по адресу: https: // локальный: 8443/WpcimEncodeDecode/услуги/WpcimService? WSDL. Он не удался: \t https: // localhost: 8443/WpcimEncodeDecode/services/WpcimService? Wsdl. – user1280096

+0

Это то, что я добавил: @WebService (portName = "SampleWebServicePort", serviceName = "service.aaa.com" ;, targetNamespace = "SampleWebService") – user1280096

+0

Можете ли вы открыть URL-адрес WebService в браузере? –

Смежные вопросы