我将下面的类嵌入到已部署到Weblogic 10.3的EAR文件中。
我认为这是我需要的所有内容才能使Web服务可用。
在控制台中 - 当我展开EAR时,我看到了
WebServices ->
None to display
我知道我可以添加到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!!!!!";
}
}
答案 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注释的默认库。