CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  非技术区

hibernate3.1b3版+Tomcat5.5.15+Oracle9:存储空间数据时,使用的自定义类型出错!!!

楼主chinasqsd(李鹏)2006-03-01 18:07:49 在 Web 开发 / 非技术区 提问

[b]hibernate+Tomcat,存储空间数据时,使用的自定义类型出错!!!     [b]    
   
  配置环境:hibernate3.1b3版+Tomcat5.5.15+Oracle9  
   
  在往Oracle数据库存储空间数据的时候,出错.其他不涉及到空间数据的地方一切正常.  
   
  错误:  
  **********输出1**************  
  oracle.sql.STRUCT@1d9e279  
  time:2006-03-01   02:38:24:312  
  Servlet.service()   for   servlet   jsp   threw   exception                
  method:org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:253)  
    java.lang.ArrayIndexOutOfBoundsException:   1  
                  at   com.lbsone.cusxy.nullSafeGet(cusxy.java:50)  
                  at   org.hibernate.type.CustomType.nullSafeGet(CustomType.java:104)  
                  at   org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)  
                  at   org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:1889)  
                  at   org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1372)  
                  at   org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1300)  
                  at   org.hibernate.loader.Loader.getRow(Loader.java:1197)  
                  at   org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:568)  
                  at   org.hibernate.loader.Loader.doQuery(Loader.java:689)  
                  at   org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:223)  
                  at   org.hibernate.loader.Loader.doList(Loader.java:2147)  
                  at   org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2026)  
                  at   org.hibernate.loader.Loader.list(Loader.java:2021)  
                  at   org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:109)  
                  at   org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1544)  
   
                  at   org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:165)  
                  at   com.lbsone.MapCard.newcards(MapCard.java:405)  
                  at   org.apache.jsp.mapcardleft_jsp._jspService(org.apache.jsp.mapcardleft_jsp:66)  
                  at   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)  
                  at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)  
                  at   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)  
                  at   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)  
                  at   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)  
                  at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)  
                  at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)  
                  at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)  
                  at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)  
                  at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)  
                  at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)  
                  at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)  
                  at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)  
                  at   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)  
                  at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)  
                  at   org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)  
                  at   org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)  
                  at   org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)  
                  at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)  
                  at   java.lang.Thread.run(Thread.java:595)  
   
  我的自定义类文件:cusxy.java  
   
  package   com.lbsone;  
   
  import   oracle.sql.STRUCT;  
  import   java.io.*;  
  import   java.sql.*;  
  import   org.hibernate.usertype.*;  
  import   oracle.spatial.geometry.*;  
   
   
  public   class   cusxy  
          implements   UserType   {  
      private   static   final   int[]   TYPES   =   new   int[]   {  
              Types.VARCHAR  
      };  
      public   cusxy()   {  
      }  
   
      public   static   void   main(String[]   args)   {  
          cusxy   cusxy1   =   new   cusxy();  
      }  
   
      public   int[]   sqlTypes()   {  
          return   TYPES;  
      }  
   
      public   Class   returnedClass()   {  
          return   String.class;  
      }  
   
      public   boolean   equals(Object   parm1,   Object   parm2)   throws   org.hibernate.  
              HibernateException   {  
          boolean   i   =   true;  
          if   (parm1   !=   null)   {  
              if   (parm1.equals(parm2))   {  
                  i   =   true;  
              }  
              else   {  
                  i   =   false;  
              }  
          }  
          return   i;  
      }  
   
      public   Object   nullSafeGet(ResultSet   result,   String[]   parm2,   Object   parm3)     {  
          String   xy   =   "";  
          oracle.sql.STRUCT   st   =   null;  
          try   {  
              System.out.println("**********输出1**************");  
              System.out.println(result.getObject(parm2[0]));  
              System.out.println("**********输出2**************");  
              st   =   (oracle.sql.STRUCT)   result.getObject(parm2[0]);  
              System.out.println("**********输出3**************");  
          }  
          catch   (SQLException   ex)   {  
                //ex.printStackTrace();  
                System.out.println("*******异常************");  
          }  
          System.out.println("***********完成************");  
          if   (st   !=   null)   {  
              JGeometry   j_geom   =   null;  
              try   {  
                  j_geom   =   JGeometry.load(st);  
              }  
              catch   (SQLException   ex1)   {  
              }  
              if   (j_geom   !=   null)   {  
                  double[]   dxy   =   j_geom.getPoint();  
                  if   (dxy   !=   null)   {  
                      for   (int   i   =   0;   i   <   dxy.length;   i++)   {  
                          xy   =   dxy[0]   +   ";"   +   dxy[1];  
                      }  
                  }  
              }  
          }  
          return   xy;  
      }  
   
      public   void   nullSafeSet(PreparedStatement   parm1,   Object   parm2,   int   parm3)   throws  
              org.hibernate.HibernateException,   java.sql.SQLException   {  
          String   xysrc   =   (String)   parm2;  
          System.out.println("xy==="   +   xysrc);  
          String   xyArr[]   =   xysrc.split(";");  
          try   {  
              //   PoolableConnection   connpool=(PoolableConnection)parm1.getConnection();  
              //Connection   conn=connpool.getInnermostDelegate();  
              //System.out.println("oracle.jdbc.driver.OracleConnection");  
   
              //com.mchange.v2.c3p0.impl.NewProxyConnection   conns   =   (com.mchange.v2.c3p0.  
              //impl.NewProxyConnection)   parm1.getConnection();  
              oracle.jdbc.driver.OracleConnection   conns   =   (oracle.jdbc.driver.OracleConnection)   parm1.getConnection();  
              Statement   statement   =   conns.createStatement();  
              ResultSet   resultset   =   statement.executeQuery(  
                      "select     GEOLOC   from   usrpoi   where   rownum<2");   ;  
              resultset.next();  
              STRUCT   st   =   (oracle.sql.STRUCT)   resultset.getObject(1);  
              Connection   conn   =   st.getConnection();  
              System.out.println("connection+++"   +   conn);  
              String   x   =   xyArr[0];  
              String   y   =   xyArr[1];  
              System.out.println("x+y="   +   x   +   y);  
              double   dx   =   Double.parseDouble(x);  
              double   dy   =   Double.parseDouble(y);  
              JGeometry   jg   =   new   JGeometry(2001,   8192,   dx,   dy,   0,   null,   null);  
              STRUCT   struct   =   JGeometry.store(jg,   conn);  
              String   xy   =   "MDSYS.SDO_GEOMETRY(2001,8192,MDSYS.SDO_POINT_TYPE("   +   x   +  
                      ","   +   y   +   ",0),null,null)";  
              parm1.setObject(parm3,   struct);  
              resultset.close();  
              statement.close();  
              conn.close();  
          }  
          catch   (Exception   e)   {  
              System.out.print("异常报告输出1");  
              e.printStackTrace();  
          }  
      }  
   
      public   Object   deepCopy(Object   parm1)   throws   org.hibernate.HibernateException   {  
   
          String   xy   =   (String)   parm1;  
          return   xy;  
      }  
   
      public   boolean   isMutable()   {  
          return   false;  
      }  
   
      public   int   hashCode(Object   object)   {  
          return   0;  
      }  
   
      public   Serializable   disassemble(Object   object)   {  
          return   null;  
      }  
   
      public   Object   assemble(Serializable   serializable,   Object   object)   {  
          return   "";  
      }  
   
      public   Object   replace(Object   object,   Object   object1,   Object   object2)   {  
          return   "";  
      }  
  }  
   
  ***************************************************************************************** 问题点数:20、回复次数:1Top

1 楼znjgress(四空和尚)回复于 2006-03-03 09:28:02 得分 0

友情UPTop

相关问题

  • Tomcat+Oracle问题
  • oracle认证牛B伐?
  • 急!Tomcat+Oracle中文问题!
  • tomcat连接oracle的问题
  • spring+hibernate tomcat启动错误
  • Tomcat下hibernate的异常
  • hibernate + tomcat 连接问题
  • hibernate tomcat连接池问题
  • tomcat如何连oracle呀
  • tomcat下连oracle问题!

关键词

  • .net
  • 数据
  • hibernate
  • tomcat
  • oracle
  • 出错
  • loader
  • 存储空间数据
  • at org

得分解答快速导航

  • 帖主:chinasqsd

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo