Hi,
I am using Eclipse 3.0 with Lomboz 3.0
plugin.
I am trying to use a "DisplayTag" (A sourceforge
project) in one of my JSPs. But as soon as I include the TLD declaration I get
this error "Save Failed:null". I had created this project using 'Lomboz J2EE
Project Wizard'.
Here is the JSP Code.
1: <%@ page
contentType="text/html;
charset=iso-8859-1" language="java"%> 2: <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %> 3: <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean"
prefix="bean" %> 4: <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic"
prefix="logic" %> 5: <%@ taglib uri="http://displaytag.sf.net" prefix="display"
%>
6: <link rel="stylesheet"
type="text/css" href=''>
7: <display:table name= "products" export="true" defaultsort="1"
defaultorder="descending" pagesize="10" requestURI="/listProducts.do"> 8: <display:column property="productid"
title="ID"
sortable="true" headerClass="sortable"/> 9:
<display:column property="name" sortable="true" headerClass="sortable"/> 10: </display:table>
If I remove line no 5 OR line nos 7,8,9,10 from
above, then the file is saved successfuly. The stack trace (given below) says
"ClassNotFound" for log4j but I have double checked the Build Path and it seems
to be perfect (contains the log4j jar file) and my logging is working perfectly
otherwise.
Surprisingly this error does not occur on any
other PCs with same Eclipse, Lomboz and DisplayTag versions.
Please help me out.
Regards,
Sanjeet
The error log shows following trace
java.lang.ExceptionInInitializerError at
java.lang.Class.forName0(Native Method) at
java.lang.Class.forName(Class.java:140) at
org.displaytag.tags.TableTagBeanInfo.class$(TableTagBeanInfo.java:41) at
org.displaytag.tags.TableTagBeanInfo.getPropertyDescriptors(TableTagBeanInfo.java:40) at
java.beans.Introspector.getTargetPropertyInfo(Introspector.java:436) at
java.beans.Introspector.getBeanInfo(Introspector.java:372) at
java.beans.Introspector.getBeanInfo(Introspector.java:144) at
org.apache.jasper.compiler.Generator$TagHandlerInfo.<init>(Generator.java:3675) at
org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2094) at
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1574) at
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1494) at
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2216) at
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2273) at
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2279) at
org.apache.jasper.compiler.Node$Root.accept(Node.java:493) at
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2216) at
org.apache.jasper.compiler.Generator.generate(Generator.java:3262) at
com.objectlearn.jasper.LombozJspC.parseInternal(LombozJspC.java:219) at
com.objectlearn.jasper.LombozJspC.parse(LombozJspC.java:124) at
com.objectlearn.jdt.j2ee.core.WebModule.internalParseJSP(WebModule.java:274) at
com.objectlearn.jdt.j2ee.core.WebModule.forceParseJSP(WebModule.java:255) at
com.objectlearn.jdt.j2ee.core.WebModule.parseJSP(WebModule.java:241) at
com.objectlearn.jdt.j2ee.core.Project.parseJSP(Project.java:747) at
com.objectlearn.jdt.j2ee.editor.JspEditor.parseDocument(JspEditor.java:264) at
com.objectlearn.jdt.j2ee.editor.JspContentOutlinePage$ContentProvider.inputChanged(JspContentOutlinePage.java:160) at
org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:234) at
org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1059) at
com.objectlearn.jdt.j2ee.editor.JspContentOutlinePage.setViewerInput(JspContentOutlinePage.java:319) at
com.objectlearn.jdt.j2ee.editor.JspContentOutlinePage.setInput(JspContentOutlinePage.java:293) at
com.objectlearn.jdt.j2ee.editor.JspEditor.doSave(JspEditor.java:178) at
org.eclipse.ui.internal.EditorManager$12.run(EditorManager.java:1160) at
org.eclipse.ui.internal.EditorManager$10.run(EditorManager.java:1015) at
org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:303) at
org.eclipse.jface.operation.ModalContext.run(ModalContext.java:253) at
org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:588) at
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at
org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:585) at
org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:1653) at
org.eclipse.ui.internal.EditorManager.runProgressMonitorOperation(EditorManager.java:1021) at
org.eclipse.ui.internal.EditorManager.savePart(EditorManager.java:1165) at
org.eclipse.ui.internal.WorkbenchPage.savePart(WorkbenchPage.java:2539) at
org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:2551) at
org.eclipse.ui.internal.SaveAction.run(SaveAction.java:69) at
org.eclipse.jface.action.Action.runWithEvent(Action.java:881) at
org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:141) at
org.eclipse.ui.internal.commands.Command.execute(Command.java:132) at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:471) at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:889) at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:930) at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:548) at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$2(WorkbenchKeyboard.java:496) at
org.eclipse.ui.internal.keys.WorkbenchKeyboard$1.handleEvent(WorkbenchKeyboard.java:261) at
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at
org.eclipse.swt.widgets.Display.filterEvent(Display.java:740) at
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:795) at
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:820) at
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:805) at
org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:1734) at
org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:1730) at
org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3067) at
org.eclipse.swt.widgets.Control.windowProc(Control.java:2970) at
org.eclipse.swt.widgets.Display.windowProc(Display.java:3338) at
org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at
org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1467) at
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2429) at
org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377) at
org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348) at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254) at
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141) at
org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96) at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335) at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273) at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129) at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at
java.lang.reflect.Method.invoke(Method.java:324) at
org.eclipse.core.launcher.Main.basicRun(Main.java:183) at
org.eclipse.core.launcher.Main.run(Main.java:644) at
org.eclipse.core.launcher.Main.main(Main.java:628) Caused by:
org.apache.commons.logging.LogConfigurationException:
org.apache.commons.logging.LogConfigurationException: No suitable Log
constructor [Ljava.lang.Class;@1e6cf07 for
org.apache.commons.logging.impl.Log4JLogger at
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:532) at
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272) at
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:246) at
org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395) at
org.displaytag.tags.TableTag.<clinit>(TableTag.java:103) ... 80
more Caused by: org.apache.commons.logging.LogConfigurationException: No
suitable Log constructor [Ljava.lang.Class;@1e6cf07 for
org.apache.commons.logging.impl.Log4JLogger at
org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:432) at
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525) ...
84 more Caused by: java.lang.NoClassDefFoundError:
org/apache/log4j/Logger at java.lang.Class.getDeclaredConstructors0(Native
Method) at
java.lang.Class.privateGetDeclaredConstructors(Class.java:1590) at
java.lang.Class.getConstructor0(Class.java:1762) at
java.lang.Class.getConstructor(Class.java:1002) at
org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:429) ...
85 more
|