@WebService Annotation不适用于Weblogic 10.3

时间:2011-06-28 15:43:11

标签: java web-services jax-ws weblogic-10.x

我将下面的类嵌入到已部署到Weblogic 10.3的EAR文件中。

我认为这是我需要的所有内容才能使Web服务可用。

在控制台中 - 当我展开EAR时,我看到了

WebServices -> None to display

  • EAR已部署并处于活动状态。
  • WebServiceMain绝对打包在EAR

我知道我可以添加到ANT脚本中的JWSC任务 - 但我认为这很简单吗?

package messagecenter.ws;

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

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

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

3 个答案:

答案 0 :(得分:1)

遵循本教程: http://download.oracle.com/docs/cd/E12840_01/wls/docs103/webserv/setenv.html#IterativeDevelopment

但是,如果您的部署包是一个ear,则需要有一个application.xml,您将在其中指定将war或jar作为模块。

<?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>

答案 1 :(得分:0)

请@Stateless,虽然我没有在文档中找到任何地方但是通过添加@Stateless它识别并创建webservice,所以你的代码看起来像这样



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!!!!!";
    }
}

答案 2 :(得分:0)

我遇到了同样的问题。 经过大量的研究,解决方案是在weblogic-application.xml中指定prefer-application-packages标签中的以下内容:

<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注释的默认库。