为什么用oracle 改成用mysql修改了些东东就不能了

小虾来问问题了╮(╯_╰)╭:
看下错误提示如下

2011-1-3 12:07:55 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2011-1-3 12:07:55 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory guestbook
log4j:WARN No appenders could be found for logger (org.springframework.core.CollectionFactory).
log4j:WARN Please initialize the log4j system properly.
2011-1-3 12:07:57 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
2011-1-3 12:08:00 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [javax.sql.DataSource] for property 'dataSource'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [javax.sql.DataSource] for property 'dataSource': no matching editors or conversion strategy found
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
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:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [javax.sql.DataSource] for property 'dataSource'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [javax.sql.DataSource] for property 'dataSource': no matching editors or conversion strategy found
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:391)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1289)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1250)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
... 38 more
Caused by: java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [javax.sql.DataSource] for property 'dataSource': no matching editors or conversion strategy found
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:231)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:138)
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:386)
... 42 more
2011-1-3 12:08:00 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2011-1-3 12:08:00 org.apache.catalina.core.StandardContext start
严重: Context [/guestbook] startup failed due to previous errors
2011-1-3 12:08:00 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
2011-1-3 12:08:01 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
严重: The web application [/guestbook] registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.

不知道还需要改哪些加哪些jar包。我都加了mysql-connector 咋办呢?

还有为什么这里也发生错误了呢?

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:MM:ss");
    gb.[color=brown]setTime[/color](sdf.format(new Date(0)));

改用mysql就发生错误。

╮(╯_╰)╭why?

1、我看你用的还是struts 1.几的,如果你是刚学习的话,直接学struts 2了,struts 1已过时,除非你是在维护公司原有的代码

2、我看你传上来的代码,org.hibernate.dialect.MysqlDialect学没改过来,
value="dataSource">

中的value="dataSource"要改为ref="dataSource"

其他暂看不出问题

检查配置文件applicationContext.xml

[code="java"]
应该改为引用:
[/code]

[code="java"]
value="oracle.jdbc.driver.OracleDriver">

value="jdbc:oracle:thin:@127.0.0.1:1521:xx">



[/code]
是否改成mysql的连接方式?????

什么文件也不给怎么看 楼上没提到的 xx.hbm.xml的id生成策略也可能是一个原因
oracle有时是sequence 改为native通用的

方言都对吗

[quote]SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:MM:ss");
gb.setTime(sdf.format(new Date(0))); [/quote]
这里gb是什么? setTime里面应该传进去的是long类型
sdf.format(new Date(0))返回的是String类型

遇到问题首先要认真看看异常告诉你是什么原因造成的:
Caused by: org.hibernate.HibernateException: Dialect class not found: org.hibernate.dialect.MysqlDialect

意思是说找不到org.hibernate.dialect.MysqlDialect
那么,你就要看hibernate中是不是有这个类,结果会发现,这个类真的找不到,而是:
org.hibernate.dialect.MySQLDialect
org.hibernate.dialect.MySQL5Dialect
org.hibernate.dialect.MySQL5InnoDBDialect
等,一般可以直接用第一个
org.hibernate.dialect.MySQLDialect

换数据库时记得修改下面这段方言喔
[code="java"]
org.hibernate.dialect.MySQLDialect
[/code]

以下是各数据库对应得方言

RDBMS 方言
[code="java"]DB2 org.hibernate.dialect.DB2Dialect

DB2 org.hibernate.dialect.DB2400Dialect
AS/400 org.hibernate.dialect.DB2390Dialect
DB2 OS390 org.hibernate.dialect.PostgreSQLDialect
PostgreSQL org.hibernate.dialect.PostgreSQLDialect
MySQL org.hibernate.dialect.MySQLDialect
MySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialect
MySQL with MyISAM org.hibernate.dialect.MySQLMyISAMDialect
Oracle (any version) org.hibernate.dialect.OracleDialect
Oracle 9i/10g org.hibernate.dialect.Oracle9Dialect
Sybase org.hibernate.dialect.SybaseDialect
Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect
Microsoft SQL Server org.hibernate.dialect.SQLServerDialect
SAP DB org.hibernate.dialect.SAPDBDialect
Informix org.hibernate.dialect.InformixDialect
HypersonicSQL org.hibernate.dialect.HSQLDialect

Ingres org.hibernate.dialect.IngresDialect
Progress org.hibernate.dialect.ProgressDialect
Mckoi SQL org.hibernate.dialect.MckoiDialect
Interbase org.hibernate.dialect.InterbaseDialect
Pointbase org.hibernate.dialect.PointbaseDialect
FrontBase org.hibernate.dialect.FrontbaseDialect
Firebird org.hibernate.dialect.FirebirdDialect [/code]

简单的是能看懂, 深的可就晕了。头疼

呵,这也不深啦,关键是在耐心的看一下

hibernate 方法貌似写进了applicationContext了

什么意思??

问题解决了没?

在开发hibernate的程序时,需要进行SessionFactory的配置,简单地说,也就是建立与数据库之间连接的配置,在hibernate中一般使用xml文件来进行配置,但是在该文件的配置中需要设置dialect方言属性值,对于不同的数据库,方言的值dialect是不同的

建议去论坛里面找找spring hibernate整合的小例子。
这里给个链接 [url]http://kabuka.iteye.com/blog/854675[/url]

先去试着写些小demo,把配置文件的各个部分搞清楚。
理清楚头绪,后面就好多了

Dialect class not found: org.hibernate.dialect.MYSQLDialect
你这个还是错了啊,
就这样:
org.hibernate.dialect.MySQLDialect

最后的类名错了

在java代码中看看该类存不存在,有没有写错,再复制到xml文件中,不要直接手工打就运行,很容易出错

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'guestbookManager' is defined

说这个'guestbookManager' bean没有定义,我估计还是你的手工输入造成拼写错误的问题,你直接复制xml中bean的id为你要的那个id去用

[code="xml"]
class="com.guestbook.web.action.GuestbookAction" abstract="false"
lazy-init="default" autowire="default" dependency-check="default"
p:guestbookManager-ref="guestbookManager">

[/code]
中,GuestbookAction中是不是有个setGuestbookManager(...),这个要正确(大小写)

p:guestbookManager-ref="guestbookManager"后面这个guestbookManager要与你在其他地方定义的
这个要一致

从你的错误看还是报这个错误:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'guestbookManager' is defined

找不到 guestbookManager 这个bean

有没有在spring中定义这个bean:

那就是啦,我看了你就是没定义啊,一直叫你看,你都没加下面这段:
[code="xml"]
class="com.guestbook.service.impl.GuestbookManagerImpl">


[/code]

class="com.guestbook.service.impl.GuestbookManagerImpl">



ref="guestbookDao", 是ref,不是value, 写错