嗨,我在Linux机器上的tomcat中部署我的应用程序,我得到错误......我已经在tomcat/server/lib文件夹中推出了mysql-connector-java-5.1.18-bin.jar ..
org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:766)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at jdbchandler.JDBCHelp.getConnection(JDBCHelp.java:24)
at requesthandlers.HandleLoginRequest.handleRequest(HandleLoginRequest.java:98)
at web.Controller.doPost(Controller.java:38)
at web.Controller.doGet(Controller.java:24)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at …Run Code Online (Sandbox Code Playgroud) 在创建ant构建脚本以生成Javadoc时,Eclipse正在接收OutOfMemoryError.ant构建具有-Xmx512m and -Xms512m运行配置中JRE选项卡下的设置.这非常适合编译应用程序.唯一的麻烦是构建的Javadoc部分.这是build.xml文件
<target name="JavaDoc" description="Create Javadocs">
<javadoc destdir="c:/javadoc" windowtitle="My API">
<classpath refid="application.classpath" />
<packageset dir="Source">
<include name="**" />
</packageset>
</javadoc>
</target>
Run Code Online (Sandbox Code Playgroud)
当构建脚本运行时,我看到了一个两步过程,Eclipse启动
org.eclipse.ant.internal.ui.antsupport.InternalAntRunner
Run Code Online (Sandbox Code Playgroud)
Visual VM显示此进程使用上面列出的堆内存参数启动.然后,此过程将生成第二个进程"JavaDoc",并且VM参数不会随之传递.在VisualVM中,可以确认JavaDoc进程在抛出OOM错误之前具有默认的-Xms8m值和大约64m Xmx值.
在Eclipse中的Ant首选项下,我试图添加一个'ANT_OPTS'变量来将JVM args传递给JavaDoc.这种改变没有用.
如果我创建批处理文件并设置ANT_OPTS值,则构建可以正常工作.
set ANT_OPTS=-Xms512m -Xmx512m
ant -file C:\myApp\build.xml JavaDoc
Run Code Online (Sandbox Code Playgroud)
但是创建批处理文件正在破坏允许我直接在Eclipse中构建所有内容的目的.
我还尝试在构建文件中添加一个硬编码堆大小的构建文件
<arg value="ANT_OPTS=-Xms512m -Xmx512m" />
Run Code Online (Sandbox Code Playgroud)
知道如何设置值,以便我的javadoc将产生更多的堆大小?