2014-10-22 3 views
3

Ниже я публикую ссылки ниже, чтобы опубликовать веб-сервис.JAX-WS webservice на Weblogic 12c

http://www.mkyong.com/webservices/jax-ws/jax-ws-java-web-application-integration-example/ http://stlarch.blogspot.com.tr/2013/02/building-jax-ws-webservices-in-weblogic.html http://www.mkyong.com/webservices/jax-ws/jax-ws-spring-integration-example/ http://examples.javacodegeeks.com/enterprise-java/jws/jax-ws-spring-integration-example/

Этот код работает при развертывании на сервере Tomcat. Но это не работает в weblogic 12c. Нужно ли давать дополнительные параметры? У меня нет исключения во время процесса развертывания. Я не могу увидеть какую-либо одну веб-консоль в разделе Webservices в развернутом приложении.

UPDATE: После развертывания webservicetest.war закодированный мадхаве

enter image description here

+0

Вы имеете в виду, что после развертывания на сервере Weblogic вы не можете видеть веб-службы? – Unknown

+0

да, я не вижу, поэтому я не могу получить доступ к веб-сервису через url –

+0

Попробуйте использовать свой IP-адрес вместо localhost. Сначала вы запускаете CalculatorServiceClient – Unknown

ответ

1

Я прочитал следующую ссылку и применил метод отображения servlet. я могу получить доступ к wsdl и сделать успешно SOAP запрос через SOAPUI

http://www.krestjaninoff.ru/2013/09/custom-context-path-for-jax-ws-web.html

<servlet> 
    <servlet-name>TestWSPort</servlet-name> 
    <display-name>TestWSPort</display-name> 
    <servlet-class>name.krestjaninoff.TestWSService</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>TestWSPort</servlet-name> 
    <url-pattern>myOwn/path/TestWS</url-pattern> 
</servlet-mapping> 

Вот проект, который я создал, вы можете скачать https://www.dropbox.com/s/vztkfqxekw43n4a/WeblogicJaxWsProject.zip?dl=0

Спасибо Mikhail Krestjaninoff, который является владельцем сообщения, указанного по ссылке

+0

Это хороший материал в большинстве случаев, когда вы находите ссылку на impl и дерьмо о sun-jaxws.xml, но если вы используете weblogic или websphere, вы не используете reference impl –

+0

, ни один из двух предоставленных ссылок не работает. Пожалуйста, опубликуйте полное решение. – Gab

3

Я создал свое собственное приложение, чтобы проверить вашу проблему. Действительно, он работает отлично для меня. Я разделяю то же самое с вами.

1) Создание простого веб-приложения. (В Eclipse File + New + Project Dynamic Web)

2) Создание интерфейса в качестве веб-сервиса.

package com.madhava.service; 

import javax.jws.WebMethod; 
import javax.jws.WebParam; 
import javax.jws.WebResult; 
import javax.jws.WebService; 

import com.madhava.CalculatorServiceConstant; 
@WebService(name = CalculatorServiceConstant.Name.CALCULATOR_SERVICE, targetNamespace = CalculatorServiceConstant.CALCULATOR_SERVICE_TARGET_NAME_SPACE) 
public interface CalculatorService { 

    @WebMethod 
    @WebResult(name="sum")Integer addNumber(@WebParam(name = "number1") Integer number1, 
      @WebParam(name = "number2") Integer number2); 

    @WebMethod 
    @WebResult(name="difference")Integer subtractNumber(@WebParam(name = "number1") Integer number1, 
      @WebParam(name = "number2") Integer number2); 

    @WebMethod 
    @WebResult(name="multiplication")Long multiplyNumber(@WebParam(name = "number1") Integer number1, 
      @WebParam(name = "number2") Integer number2); 

    @WebMethod 
    @WebResult(name="division")Double divideNumber(@WebParam(name = "number1") Integer number1, 
      @WebParam(name = "number2") Integer number2); 
} 

3) Создайте класс, который реализует веб-сервис, который вы написали.

import javax.ejb.Stateless; 
    import javax.jws.WebService; 

    import com.madhava.service.CalculatorService; 

    @Stateless 
    @WebService(portName = CalculatorServiceConstant.PortName.CALCULATOR_SERVICE, serviceName = CalculatorServiceConstant.ServiceName.CALCULATOR_SERVICE, endpointInterface = CalculatorServiceConstant.EndPointInterface.CALCULATOR_SERVICE, targetNamespace = CalculatorServiceConstant.CALCULATOR_SERVICE_TARGET_NAME_SPACE) 
    public class CalculatorServiceImpl implements CalculatorService { 

     @Override 
     public Integer addNumber(Integer number1, Integer number2) { 
      if (number1 != null && number2 != null) { 
       return number1 + number2; 
      } else { 
       return 0; 
      } 
     } 

     @Override 
     public Integer subtractNumber(Integer number1, Integer number2) { 
      if (number1 != null && number2 != null) { 
       if (number1 > number2) { 
        return number1 - number2; 
       } else { 
        return number2 - number1; 
       } 
      } else { 
       return 0; 
      } 
     } 

     @Override 
     public Long multiplyNumber(Integer number1, Integer number2) { 
      if (number1 != null && number2 != null) { 
       return (long) (number1 * number2); 
      } else { 
       return 0L; 
      } 
     } 

     @Override 
     public Double divideNumber(Integer number1, Integer number2) { 
      if ((number1 != null && number2 != null) || number2!=0) { 
       return (double) (number1/number2); 
      } 
else { 
       return 0.0D; 
      } 
     } 

    } 

4) Создать класс, который хранит имя, портированный, имя сервиса и т.д.

public class CalculatorServiceConstant { 

    public static final String CALCULATOR_SERVICE_TARGET_NAME_SPACE = "http://calculatorservices.madhava.com"; 

    private CalculatorServiceConstant() { 

    } 

    public static class Name { 
     public static final String CALCULATOR_SERVICE = "CalculatorService"; 

     // Private Constructor 
     private Name() { 

     } 

    } 

    public static class PortName { 
     public static final String CALCULATOR_SERVICE = "CalculatorServicePort"; 

     // Private Constructor 
     private PortName() { 

     } 
    } 


    public static class ServiceName { 

     public static final String CALCULATOR_SERVICE = "CalculatorServiceService"; 

     // Private Constructor 
     private ServiceName() { 

     } 
    } 


    public static class EndPointInterface { 

     public static final String CALCULATOR_SERVICE = "com.madhava.service.CalculatorService"; 

     // Private Constructor 
     private EndPointInterface() { 

     } 
    } 



    public static class JNDI { 

     public static final String CALCULATOR_SERVICE = "CalculatorService#com.madhava.service.CalculatorService"; 

     // Private Constructor 
     private JNDI() { 

     } 
    } 

} 

5) Создание войны файла приложения и развертывание то же самое в WebLogic Server. Здесь вы сможете увидеть веб-сервиса, как «CalculatorServiceService»

CalculatorService

Url для проверки клиента в WebLogic:

http://localhost:7001/wls_utc/?wsdlUrl=http%3A%2F%2Flocalhost%3A7001%2FWebServicesTest%2FCalculatorServiceService%3FWSDL 

6) Наконец, чтобы проверить, является ли это правильно или нет у меня работает создал класс клиента.

package com.madhava.client; 

import java.net.MalformedURLException; 
import java.net.URL; 

import javax.xml.namespace.QName; 
import javax.xml.ws.Service; 

import com.madhava.CalculatorServiceConstant; 
import com.madhava.service.CalculatorService; 

public class CalculatorServiceClient { 

    /** 
    * @param args 
    * @throws MalformedURLException 
    */ 
    public static void main(String[] args) throws MalformedURLException { 

     URL url = new URL("http://localhost:7001/WebServicesTest/CalculatorServiceService?wsdl"); 
     QName qname = new QName(CalculatorServiceConstant.CALCULATOR_SERVICE_TARGET_NAME_SPACE, CalculatorServiceConstant.ServiceName.CALCULATOR_SERVICE); 

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

     CalculatorService calculatorService = service.getPort(CalculatorService.class); 

     System.out.println(calculatorService.addNumber(10,20)); 

    } 

} 

Надеюсь, это поможет!

+0

вы тоже можете поделиться с web.xml? –

+0

Я ничего не добавил в свой web.xml. когда я создаю новое динамическое веб-приложение. – Unknown

+0

Я добавил ваш файл класса в свой проект, но все еще не вижу ничего раздела веб-сервисов. Вот мой проект, вы можете его компилировать и развернуть? https://www.dropbox.com/s/u5x7wtit3ieqxel/WebServicesExample.7z?dl=0 –

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