我的struts2应用程序出现了问题。问题是当应用程序运行时,几分钟后它将无法响应,我必须终止进程,并再次启动本地服务器上的tomcat。我不明白这是什么问题。我在命令提示符下检查了tomcat进程的状态,发现进程在Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.9.3- 8ubuntu2~14.04'
--with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++
--prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes
--enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib
--disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre
--enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64 --with-arch-directory=amd64
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch
--disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32
--enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
。我不知道为什么会造成这样的问题。之前它工作正常,我只用JNDI改变了硬编码数据源。
JNDI代码在这里:
context.xml中
fin_wait_2
的web.xml
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="100" maxIdle="20" maxWait="10000" name="jdbc/testdb" password="FDmh5cUt7bY3K47u" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/tests" username="root"/>
我也从上下文中获取此数据源,并使用servetcontextlistener设置为servletcontext。
DB_Listener.java
<resource-ref>
<res-ref-name>jdbc/testdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
我也在web.xml文件中创建了监听器条目。
Context ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/testdb");
ServletContext context=sce.getServletContext();
context.setAttribute("ds", ds);
在这里,我不明白为什么应用程序没有反应。从登录到数据源一切正常,但几分钟后应用程序被挂起或没有响应。
请朋友帮我做点什么。