@WebService Аннотация не работает на Weblogic 10.3 - PullRequest
2 голосов
/ 28 июня 2011

У меня есть класс ниже, встроенный в файл EAR, который я развернул в Weblogic 10.3.

Я подумал, что это все, что мне нужно для того, чтобы веб-служба стала доступной для использования.

В консоли - когда я раскрываю EAR, я вижу

WebServices -> None to display

  • EAR развернут и активен.
  • WebServiceMain isопределенно упакован в EAR

Я знаю, что есть задачи JWSC, которые я могу добавить в сценарий ANT - но я подумал, что это так просто?

package messagecenter.ws;

import javax.jws.WebService;
import javax.jws.WebMethod;

/**
 * @author KwikkSilva
 */
@WebService
public class WebServiceMain {

    @WebMethod
    public String getHello()
    {
    return "hello!!!!!";
    }
}

Ответы [ 3 ]

1 голос
/ 28 июня 2011

Следуйте этому руководству: http://download.oracle.com/docs/cd/E12840_01/wls/docs103/webserv/setenv.html#IterativeDevelopment

Однако, если ваш пакет развертывания готов, у вас должен быть файл application.xml, в котором вы укажете, что у вас есть война или фляга как модуль внутри.

<?xml version="1.0" encoding="UTF-8"?>
<application>
   <display-name>cccc</display-name>
   <description>some ws</description>
   <module>
      <web>
         <web-uri>webservice.war</web-uri>
         <context-root>client</context-root>
      </web>
   </module> 
</application>
0 голосов
/ 30 января 2017

У меня была такая же проблема.После долгих исследований было решено указать в файле weblogic-application.xml в теге предпочитаемые приложения пакеты:

<prefer-application-packages>
    <package-name>com.sun.xml.internal.messaging.saaj.soap.*</package-name>
    <package-name>weblogic.wsee.saaj.*</package-name>
</prefer-application-packages>

Кроме того, я импортировал saaj-impl-1.3.1.8.jar в моем проекте.Это помогло, и причина этого в том, что для выполнения определенных операций SOAP weblogic предпочитает определенные библиотеки по умолчанию, которые не распознают должным образом аннотацию @WebService.

0 голосов
/ 01 июля 2011

пожалуйста @Stateless, хотя я не нашел нигде в документации, но, добавив @Stateless, он распознает и создает веб-сервис, поэтому ваш код будет выглядеть так



package messagecenter.ws;
import javax.ejb.Stateless;
import javax.jws.WebService;
import javax.jws.WebMethod;

/**
 * @author KwikkSilva
 */
@Stateless
@WebService
public class WebServiceMain {

    @WebMethod
    public String getHello()
    {
    return "hello!!!!!";
    }
}
...