2012-03-28 40 views
0

我想通过jsp/servlet网络应用程序使用hibernate将数据存储到MySql服务器本地安装。使用休眠时StringIndexOutOfBoundsException

我所做的是我第一次尝试并成功使用独立的Java应用程序,然后在同一个项目中,我添加了一个Web模块并复制了工作代码。

我得到了以下错误,当我部署我的web应用到JBoss 5,

The server encountered an internal error() that prevented it from fulfilling this request. 

java.lang.StringIndexOutOfBoundsException: String index out of range: 0 
    java.lang.String.charAt(String.java:686) 
    org.hibernate.mapping.Table.setSchema(Table.java:643) 
    org.hibernate.cfg.Mappings.addTable(Mappings.java:191) 
    org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:312) 
    org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:295) 
    org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:166) 
    org.hibernate.cfg.Configuration.add(Configuration.java:702) 
    org.hibernate.cfg.Configuration.addInputStream(Configuration.java:537) 
    org.hibernate.cfg.Configuration.addResource(Configuration.java:599) 
    org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1621) 
    org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1589) 
    org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1568) 
    org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1542) 
    org.hibernate.cfg.Configuration.configure(Configuration.java:1462) 
    org.hibernate.cfg.Configuration.configure(Configuration.java:1448) 
    com.directfn.backend.servlet.PersistanceServlet.doGet(PersistanceServlet.java:46) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 

能有人帮我解决这个问题呢?

+0

调试并发布输出。这会告诉你它正在窒息的映射文件。 – vikiiii 2012-03-28 05:37:31

+0

你可以显示你的一些代码吗? – 2012-03-28 06:31:30

+0

我会注意这行:org.hibernate.mapping.Table.setSchema(Table.java:643)也许数据库模式配置不好,甚至没有指定。 – ka3ak 2012-03-28 05:36:44

回答

1

您的hibernate xml文件存在问题。

for ex。 “test.hbm.xml”

读取hibernate映射文件时发生此异常。 也许你已经设置了列名或属性名称为空或为空。

<property name="" type="java.lang.String"> <column name=""></column> </property>

设置属性/列的正确名称。