2011-06-28 60 views
2

我有一個嵌入在我已部署到Weblogic 10.3的EAR文件中的類。@WebService註解不能在Weblogic 10.3上工作

我以爲這是我需要的所有東西,才能使Web服務可用。

在控制檯 - 當我展開EAR我看到

WebServices -> None to display

  • 耳朵被部署和積極的。
  • WebServiceMain絕對是打包在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!!!!!"; 
    } 
} 
+0

很簡單,因爲這在jee6,但你正在工作在10.3這是jee5所以請嘗試下面的答案 – Cris

回答

1

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

但是,如果你部署包是你需要有一個application.xml中,你會指定你有戰爭或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

感謝您的回覆克里斯 - 我認爲這可能是路要走。我認爲我不必在那個層面上進入它 - 只是註釋並將它打包在JAR中然後是EAR,但它可能需要像你說的那樣的WAR。 – KwikkySilva

0

請@Stateless,雖然我沒有找到文檔中任何地方,但通過添加@Stateless它承認並創建Web服務使您的代碼看起來像這樣



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

我有同樣的問題。 做了很多的研究,解決辦法是在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註釋的默認庫。