2010-05-13 76 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内容。