簡體   English   中英

EJB Web服務ClassNotFoundException

[英]EJB Web Service ClassNotFoundException

服務器:JBoss 7.1.1 EJB 3.0 Eclipse Juno

我正在使用ejb 3.0進行第一個Web服務項目,並且在客戶端上遇到問題。 對於我的客戶,我組成了一個servlet。 問題是當我嘗試:

CalculatorOps calculator = (CalculatorOps)context.lookup("java:global/EJBCalculatorWS/CalculatorImp!math.CalculatorOps");

我在查找中收到ClassNotFoundException。 我從我的JBoss server.log獲得了這個jndi

[org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-3) JNDI bindings for session bean named CalculatorImp in deployment unit deployment "EJBCalculatorWS.war" are as follows:

java:global/EJBCalculatorWS/CalculatorImp!math.CalculatorOps
java:app/EJBCalculatorWS/CalculatorImp!math.CalculatorOps
java:module/CalculatorImp!math.CalculatorOps

我有2個Web項目WS和Client,都已添加到服務器,並且WS在Client的構建路徑中。

- - - - - - -碼 - - - - - -

接口

package math;

@Local
public interface CalculatorOps {
    public int add(int a, int b);
    public int subtract(int a, int b);
}

package math;

@Stateless(mappedName="TheCalc")
@WebService
public class CalculatorImp implements CalculatorOps{

    @Override
    public int add(int a, int b) {
        return a+b;
    }

    @Override
    public int subtract(int a, int b) {
        return a-b;
    }
}

Servlet

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

CalculatorOps calculator = (CalculatorOps)context.lookup("java:global/EJBCalculatorWS/CalculatorImp!math.CalculatorOps");

}

已修復:我最終通過將客戶端和ejb軟件包放到一個項目中,然后使用新的jndi來解決了這個問題。 我仍然想知道為什么在多個項目中不能添加構建路徑,然后使用jndi引用ejb而不拋出ClassNotFoundException。

如果您使用的是eclipse,則需要將EJB項目添加到Web項目的部署程序集中才能使其正常工作。構建路徑僅存在於編譯過程中,但如果運行正確,則會在運行時出現錯誤。

右鍵單擊您的Web項目->屬性->部署程序集->添加

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM