求教关于hibernate ,struts2, 连接数据库时的问题?

linpeng123l 2012-12-16 09:28:26
新手弄了好长时间了,问题是这样的,我用hibernate单独的去连数据库没有问题,单独用struts2时class.forname连接数据库时也没有问题,但是当我用struts2转到一个类里面然后用hibernate连数据库时他就一直连不上,而且hibernate执行带下面最后一句话后就不执行了(红色的是控制台输出的,绿色的是网页输出的),弄了一天了,感谢您的帮忙

484450 [http-8080-3] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
484450 [http-8080-3] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
484466 [http-8080-3] WARN org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
484468 [http-8080-3] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : linpeng/cl/User.hbm.xml
484471 [http-8080-3] WARN org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
484478 [http-8080-3] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
484479 [http-8080-3] INFO org.hibernate.cfg.HbmBinder - Mapping class: linpeng.cl.User -> users
484485 [http-8080-3] INFO org.hibernate.cfg.Configuration - Hibernate Validator not found: ignoring
484536 [http-8080-3] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
484537 [http-8080-3] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
484537 [http-8080-3] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20
484537 [http-8080-3] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
484537 [http-8080-3] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: com.microsoft.sqlserver.jdbc.SQLServerDriver at URL: jdbc:sqlserver://localhost:1433;databaseName=Test
484537 [http-8080-3] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=sa, password=****}



Struts Problem Report

Struts has detected an unhandled exception:

Messages:
com.microsoft.jdbc.base.BaseDatabaseMetaData.getDatabaseMajorVersion()I
File: org/hibernate/cfg/SettingsFactory.java
Line number: 116
Stacktraces

java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:600)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1703)
java.lang.Thread.run(Thread.java:619)

java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.getDatabaseMajorVersion()I
org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:116)
org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2901)
org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2897)
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1908)
linpeng.cl.UserCl.loginCl(UserCl.java:24)
linpeng.action.LoginAction.execute(LoginAction.java:41)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
...全文
522 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
vencent_dai 2012-12-18
  • 打赏
  • 举报
回复
引用 14 楼 linpeng123l 的回复:
额,那个name是对的吧我不用hibernate是可以的
嗯,name是对的,是我弄错了,action的method参数才是表示方法名的,不定义的话默认为execute,不好意思!
linpeng123l 2012-12-18
  • 打赏
  • 举报
回复
额,那个name是对的吧我不用hibernate是可以的
vencent_dai 2012-12-18
  • 打赏
  • 举报
回复
楼上讲的也有可能,lz都试试
  • 打赏
  • 举报
回复
楼上不对吧,应该是action中name换成LoginAction这个名字
linpeng123l 2012-12-17
  • 打赏
  • 举报
回复
引用 2 楼 fangmingshijie 的回复:
用的是微软的数据库驱动?下个第三方的试下。
嗯,是sqljdbc4.jar我用那个jtds也报一样的错
linpeng123l 2012-12-17
  • 打赏
  • 举报
回复
引用 3 楼 coder_dai 的回复:
hibernate.cfg.xml这个文件贴出来我们帮你看看,目前估计是数据库驱动和jar包匹配的问题。
引用 1 楼 JForcex 的回复:
把配置和类的代码发下,这样不好看
首先先谢谢了,下面是我的hibernate.cfg.xml(我单独用hibernate时用java主函数他是对的,可是把struts2和hibernate连在一起时却出错了,控制台不报错只是到 INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=sa, password=****}这句时停止了,网页上报的错是Struts Problem Report Struts has detected an unhandled exception) <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <session-factory> <property name="dialect"> org.hibernate.dialect.SQLServerDialect </property> <property name="connection.url"> jdbc:sqlserver://localhost:1433;databaseName=Test </property> <property name="connection.username">sa</property> <property name="connection.password">615615</property> <property name="connection.driver_class"> com.microsoft.sqlserver.jdbc.SQLServerDriver </property> <property name="myeclipse.connection.profile">Test</property> <mapping resource="linpeng/cl/User.hbm.xml" /> </session-factory> </hibernate-configuration>
JForcex 2012-12-17
  • 打赏
  • 举报
回复
把配置和类的代码发下,这样不好看
vencent_dai 2012-12-17
  • 打赏
  • 举报
回复
hibernate.cfg.xml这个文件贴出来我们帮你看看,目前估计是数据库驱动和jar包匹配的问题。
vencent_dai 2012-12-17
  • 打赏
  • 举报
回复
你这action里根本没有test和方法啊,大哥!你可能没理解为什么struts.xml里为什么那么写。 <action name="test" class="linpeng.action.LoginAction"> class指定action的路径,这个你写的对没问题。但前面的name是指调用action中哪个方法。 你写的是test,所以action里必须要有test方法。 最后,解决方法:execute替换成test
  • 打赏
  • 举报
回复
用的是微软的数据库驱动?下个第三方的试下。
linpeng123l 2012-12-17
  • 打赏
  • 举报
回复
引用 8 楼 coder_dai 的回复:
按理说struts2只是对jsp跳转控制,和数据库没有半毛钱关系。 再把你struts.xml文件和对应的action.java贴出来,再帮你看看。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.devMode" value="true"></constant>	
	<constant name="struts.i18n.encoding" value="UTF-8"></constant>
	<package name="default" extends="struts-default">
		<action name="test" class="linpeng.action.LoginAction">
		    <result name="success">/index.jsp</result>
		    <result name="input">/index.jsp</result>
		</action>
	</package>
</struts>

package linpeng.action;

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

import linpeng.cl.ConnDB;
import linpeng.cl.UserCl;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;



public class LoginAction extends ActionSupport{
	public String execute(){
		try {

//			new ConnDB().getConn();
			if(new UserCl().loginCl("lp", "lp")){
				return SUCCESS;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return INPUT;
	}

}
linpeng123l 2012-12-17
  • 打赏
  • 举报
回复
我现在不好发,等下晚上我发给你,实在谢谢了
vencent_dai 2012-12-17
  • 打赏
  • 举报
回复
按理说struts2只是对jsp跳转控制,和数据库没有半毛钱关系。 再把你struts.xml文件和对应的action.java贴出来,再帮你看看。
linpeng123l 2012-12-17
  • 打赏
  • 举报
回复
引用 6 楼 coder_dai 的回复:
484478 [http-8080-3] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null 1.你sql里有Test这个数据库么?里面有对应的表么? 没有的话,建立一个Test数据库,然后在hibernate.cfg.xml里添加一个属性让它自动生成:<prop key="……
先谢谢了,这些都是有的,就是我用这一样的配置不用struts2时他是可以正常运行的
vencent_dai 2012-12-17
  • 打赏
  • 举报
回复
484478 [http-8080-3] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null 1.你sql里有Test这个数据库么?里面有对应的表么? 没有的话,建立一个Test数据库,然后在hibernate.cfg.xml里添加一个属性让它自动生成:<prop key="hibernate.hbm2ddl.auto">create</prop>(就这个意思,我用的是spring-hibernate配置所以可能略有不同)。 2.你的账号密码确定正确么?数据库访问的权限够么? ps:<property name="connection.password">615615</property> 胆子真大,下次密码处理下再发。。。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧