A java.lang.VerifyError? Looks like a case of clean-and-recompile to me...

Wrong list by the way.

At 14:42 17.10.2002 -0700, you wrote:
I've been experimenting with log4j (1.2.6) in a web application (for logging user errors not logged by the server);
I've gotten the basic logging system to work in stand-alone apps, e.g. this code works:

import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.FileAppender;
import org.apache.log4j.SimpleLayout;

public class Tester
{

public static void main(String[] args)
{
Logger logger = null;
FileAppender appender = null;

try
{
logger = Logger.getLogger( Tester.class.getName() );
BasicConfigurator.configure();
appender = new FileAppender( new SimpleLayout(), "C:/testlog.log" );
logger.addAppender( appender );
logger.info("garbage statement");
logger.info("Exiting main method.");
}
catch ( java.io.IOException ioe )
{
ioe.printStackTrace();
}
}
}

Tester outputs the log messages to console and file output as expected;
However, when I try to use a logger in a servlet, e.g.,

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.FileAppender;
import org.apache.log4j.SimpleLayout;

public class InhouseCostServlet extends HttpServlet implements SingleThreadModel
{
private static final String CONTENT_TYPE = "text/html";
/**Initialize global variables*/
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
/**Process the HTTP Get request*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
doPost( request, response );
}
/**Process the HTTP Post request*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
HttpSession session = request.getSession(false);

costcontrol.CcsError error = calculateCost( request, session );
}
/**Clean up resources*/
public void destroy()
{
}
private void calculateCost( HttpServletRequest request, HttpSession session )
{
org.apache.log4j.Logger logger = setLogger();
//...other stuff
}
private org.apache.log4j.Logger setLogger()
{
Logger logger = null;
FileAppender appender = null;

try
{
logger = Logger.getLogger( InhouseCostServlet.class.getName() );
BasicConfigurator.configure();
appender = new FileAppender( new SimpleLayout(), "logfilename" );
logger.addAppender( appender );
}
catch ( IOException ioe )
{
ioe.printStackTrace();
}
return logger;
}
}

I get the following exception stack trace:
10/17 14:44:21 error (class: org/apache/log4j/LogManager, method: <clinit> signature: ()V) Incompatible argument to function
java.lang.VerifyError: (class: org/apache/log4j/LogManager, method: <clinit> signature: ()V) Incompatible argument to function
at org.apache.log4j.Logger.getLogger(Logger.java:85)
at costcontrol.InhouseCostServlet.setLogger(InhouseCostServlet.java:301)
at costcontrol.InhouseCostServlet.calculateCost(InhouseCostServlet.java:67)
at costcontrol.InhouseCostServlet.doPost(InhouseCostServlet.java:50)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at jrun.servlet.JRunServletPool.service(JRunServletPool.java:87)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:241)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:527)
at jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)
at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:348)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:451)
at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:294)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

Any ideas why?

--

David Rickard
Software Developer
GTS Innova

----------------------------------------------------------------------------------
The GTS Companies:
GTS Publishing Services, GTS Graphics, GTS Innova:
Your Single Source Solution!
----------------------------------------------------------------------------------


[EMAIL PROTECTED]
Visit us on the World Wide Web
http://www.gtscompanies.com
5650 Jillson St., Los Angeles, CA 90040
(323) 888-8889 x331
(323) 888-1849 [fax]



--
To unsubscribe, e-mail: <mailto:log4j-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:log4j-dev-help@;jakarta.apache.org>

--
Ceki

TCP implementations will follow a general principle of robustness: be
conservative in what you do, be liberal in what you accept from
others. -- Jon Postel, RFC 793



--
To unsubscribe, e-mail:   <mailto:log4j-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:log4j-dev-help@;jakarta.apache.org>

Reply via email to