2010-05-13 53 views
0

我有2個獨立模塊(前端和後端,第一個取決於第二個)的項目。當我試圖從前端代碼訪問後端代碼時,情況很好。當我從jsp執行相同的操作時,情況會變得更糟。IDEA模塊化問題(jsp)

這stacktrase簡單accessign豆:

<jsp:useBean id="mybean" class="backend.main.MyBean" scope="request"></jsp:useBean> 


org.apache.jasper.JasperException: /results.jsp(9,0) The value for the useBean class attribute backend.main.MyBean is invalid. 

org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40) org.apache.jasper.compiler.ErrorDispatcher.dispatch (ErrorDispatcher.java:407) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148) org.apache.jasper.compiler.Generator $ GenerateVisitor.visit(Generator.java:1220) 組織。 apache.jasper.compiler.Node $ UseBean.accept(Node.java:1178) org.apache.jasper.compiler.Node $ Nodes.visit(Node.java:2361) org.apache.jasper.compiler.Node $ Visitor.visitBody(Node.java:2411) org.apache.jasper.compiler.Node $ Visitor.visit(Node.java:2417) org.apache.jasper.compiler .Node $ Root.accept(Node.java:495) org.apache.jasper.compiler.Node $ Nodes.visit(Node.java:2361) org.apache.jasper.compiler.Generator.generate(Generator.java :3416) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:231) org.apache.jasper.compiler.Compiler.compile(Compiler.java:347) org.apache.jasper.compiler。 Compiler.compile(Compiler.java:327) org.apache.jasper.compiler.Compiler.compile(Compiler.java:314) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589) org.apache .jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java :260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

如果我嘗試訪問普通班會出現這樣的錯誤:

An error occurred at line: 12 in the jsp file: /results.jsp 
backend.main.RegularClass cannot be resolved to a type 

堆棧跟蹤:

org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92) 

org.apache.jasp er.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439) org.apache.jasper.compiler.Compiler.compile(Compiler.java: (Compiler.java:327) org.apache.jasper.compiler.Compiler.compile (JspCompilationContext.java:589) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache。 jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

對不起,這麼多stacktraces。

UPD:即使我從同一個模塊訪問bean,並且這個bean引用了另一個模塊程序中的某個類失敗。

回答

1

你可以粘貼你班上的代碼嗎?只是包名和構造函數應該足夠了

你的類是否有一個沒有參數的默認構造函數?我懷疑它沒有任何默認的public構造函數。

+0

當我試圖自己解決問題時,我創建了這個2個模塊的模擬版本,它帶有2個具有相同代碼的類(使用get/set方法的簡單bean)。而當我從jsp引用到同一個模塊中一直運行的類時,如果另一個模塊中的第二類應用程序在OP-post中使用堆棧跟蹤失敗。 P.S.兩者都有公共構造函數。 – Jeriho 2010-05-13 18:23:17

+0

public constructor!=默認構造函數。 – Toshe 2014-04-10 06:54:35

1

後端模塊的類是否真的部署?並非所有的依賴都被自動地綁定在WAR中。檢查前端模塊依賴關係,如果它們已導出並考慮查看afrtifact的佈局。首先,我會檢查目標目錄中的WAR內容。