2017-02-05 6 views
0

3つのフィールドと同様の述語を持つフォームから検索を実行しようとしていますが、yがこのエラーになります。例外はjava.lang.StringIndexOutOfBoundsExceptionです:文字列インデックスが範囲外です:0 "。要求処理に失敗しました。ネストされた例外はjava.lang.StringIndexOutOfBoundsExceptionです:文字列インデックスが範囲外です:0

これは私のコントローラのようになります。

package cl.cbrtemuco.autoconsultas.controller; 

import java.util.List; 

import org.jboss.logging.Logger; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.GetMapping; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestParam; 

import cl.cbrtemuco.autoconsultas.entity.Titulos; 
import cl.cbrtemuco.autoconsultas.service.TitulosService; 

@Controller 
@RequestMapping("/autoconsultas") 
public class TitulosController { 

    @Autowired 
    private TitulosService titulosService; 

    private Logger logger = Logger.getLogger(getClass()); 

    @GetMapping("/busqueda") 
    public String buscarTitulos(Model theModel) { 
     return "busqueda"; 
    } 

    @GetMapping("/buscarTituloPorRsoc") 
    public String buscarTituloPorRsoc(@RequestParam("razonSocial") String rSocial, 
             Model theModel) { 
     List<Titulos> elTitulo = titulosService.searchTitulosByRazonSocial(rSocial); 
     theModel.addAttribute("titulosPorRazonSocial", elTitulo); 
     return "titulosPorRsoc"; 
    } 

    @GetMapping("/tituloDetallesPorRSoc") 
    public String tituloDetallesRSoc(@RequestParam("titulosId") int idTit, Model theModel) { 
     //logger.info("showing form for update"); 
     Titulos elTitulo = titulosService.getTituloRSoc(idTit); 
     theModel.addAttribute("titulo", elTitulo); 
     return "detallesTituloPorRSoc"; 
    } 

    @GetMapping("/buscarTituloPorNombre") 
    public String buscarTituloPorNombre(@RequestParam("apellidoPaterno") String apPaterno, 
             @RequestParam("apellidoMaterno") String apMaterno, 
             @RequestParam("nombres") String nombres, Model theModel) { 
     List<Titulos> elTitulo = titulosService.searchTitulosByNombre(apPaterno, apMaterno, nombres); 
     theModel.addAttribute("titulosPorNombre", elTitulo); 
     return "titulosPorNombre"; 
    } 

    @GetMapping("/tituloDetallesPorNombre") 
    public String tituloDetallesNombre(@RequestParam("titulosId") int idTit, Model theModel) { 
     //logger.info("showing form for update"); 
     Titulos elTitulo = titulosService.getTituloNombre(idTit); 
     theModel.addAttribute("titulo", elTitulo); 
     return "detallesTituloPorNombre"; 
    } 
} 

これは私のサービスのようになります。

package cl.cbrtemuco.autoconsultas.service; 

import java.util.List; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Service; 
import org.springframework.transaction.annotation.Transactional; 

import cl.cbrtemuco.autoconsultas.dao.TitulosDAO; 
import cl.cbrtemuco.autoconsultas.entity.Titulos; 

@Service 
public class TitulosServiceImpl implements TitulosService { 

    @Autowired 
    private TitulosDAO titulosDAO; 

    @Override 
    @Transactional 
    public List<Titulos> searchTitulosByRazonSocial(String rSocial) { 
     return titulosDAO.searchTitulosByRazonSocial(rSocial); 
    } 

    @Override 
    @Transactional 
    public Titulos getTituloRSoc(int idTit) { 
     return titulosDAO.getTituloRSoc(idTit); 
    } 

    @Override 
    @Transactional 
    public List<Titulos> searchTitulosByNombre(String apPaterno, String apMaterno, String nombres) { 
     return titulosDAO.searchTitulosByNombre(apPaterno, apMaterno, nombres); 
    } 

    @Override 
    @Transactional 
    public Titulos getTituloNombre(int idTit) { 
     return titulosDAO.getTituloNombre(idTit); 
    } 
} 

、最終的にこれは私のDAO IS、ここで私が思うのエラーです:

package cl.cbrtemuco.autoconsultas.dao; 

import java.util.List; 

import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.query.Query; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Repository; 

import cl.cbrtemuco.autoconsultas.entity.Titulos; 

@Repository 
public class TitulosDAOImpl implements TitulosDAO { 

    @Autowired 
    SessionFactory sessionFactory; 

    @Override 
    public List<Titulos> searchTitulosByRazonSocial(String rSocial) { 
     Session currentSession = sessionFactory.getCurrentSession(); 
     Query<Titulos> theQuery = currentSession.createQuery("from Titulos where RazonSocial like :rSocial", 
       Titulos.class); 
     theQuery.setParameter("rSocial", "%" + rSocial.toLowerCase() + "%"); 
     List<Titulos> titulosEncontrados = theQuery.getResultList(); 
     return titulosEncontrados; 
    } 

    @Override 
    public Titulos getTituloRSoc(int idTit) { 
     Session currentSession = sessionFactory.getCurrentSession(); 
     Titulos datTituloRSoc = currentSession.get(Titulos.class, idTit); 
     return datTituloRSoc; 
    } 

    @Override 
    public Titulos getTituloNombre(int idTit) { 
     Session currentSession = sessionFactory.getCurrentSession(); 
     Titulos datTituloNombre = currentSession.get(Titulos.class, idTit); 
     return datTituloNombre; 
    } 

    @Override 
    public List<Titulos> searchTitulosByNombre(String apPaterno, String apMaterno, String nombres) { 
     Session currentSession = sessionFactory.getCurrentSession(); 
     Query<Titulos> theQuery = currentSession.createQuery(
       "from Titulos where ApellidoPaterno like :apPaterno or ApellidoMaterno like :apMaterno or Nombres like :nombres", Titulos.class); 
    theQuery.setParameter("apPaterno", "%"+apPaterno.toLowerCase()+"%") 
       .setParameter("apMaterno", "%"+apMaterno.toLowerCase()+"%") 
       .setParameter("nombres", "%"+nombres.toLowerCase()+"%"); 
     List<Titulos> titulosEncontradosNombre = theQuery.getResultList(); 
     return titulosEncontradosNombre; 
    } 

} 

最後にスタックトレースがあります。

Hibernate: select titulos0_.idTitulos as idTitulo1_0_, titulos0_.AnoCancelacion as AnoCance2_0_, titulos0_.AnoTitulo as AnoTitul3_0_, titulos0_.ApellidoMaterno as Apellido4_0_, titulos0_.ApellidoPaterno as Apellido5_0_, titulos0_.CorrelativoTitulo as Correlat6_0_, titulos0_.FojasCancelacion as FojasCan7_0_, titulos0_.FojasTitulo as FojasTit8_0_, titulos0_.Nombres as Nombres9_0_, titulos0_.NumeroCancelacion as NumeroC10_0_, titulos0_.NumeroTitulo as NumeroT11_0_, titulos0_.RazonSocial as RazonSo12_0_, titulos0_.TipoRegistro as TipoReg13_0_, titulos0_.UbicacionPropiedad1 as Ubicaci14_0_, titulos0_.VueltaCancelacion as VueltaC15_0_, titulos0_.VueltaTitulo as VueltaT16_0_ from Titulos titulos0_ where ApellidoPaterno like ? or ApellidoMaterno like ? or Nombres like ? 
feb 06, 2017 8:19:41 AM org.apache.catalina.core.StandardWrapperValve invoke 
GRAVE: El Servlet.service() para el servlet [dispatcher] en el contexto con ruta [/AutoConsultas] lanzó la excepción [Request processing failed; nested exception is java.lang.StringIndexOutOfBoundsException: String index out of range: 0] con causa raíz 
java.lang.StringIndexOutOfBoundsException: String index out of range: 0 
    at java.lang.String.charAt(String.java:658) 
    at org.hibernate.type.descriptor.java.CharacterTypeDescriptor.wrap(CharacterTypeDescriptor.java:61) 
    at org.hibernate.type.descriptor.java.CharacterTypeDescriptor.wrap(CharacterTypeDescriptor.java:16) 
    at org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$2.doExtract(VarcharTypeDescriptor.java:62) 
    at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:47) 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:258) 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:254) 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:244) 
    at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:327) 
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2775) 
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1741) 
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1667) 
    at org.hibernate.loader.Loader.getRow(Loader.java:1556) 
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:740) 
    at org.hibernate.loader.Loader.processResultSet(Loader.java:985) 
    at org.hibernate.loader.Loader.doQuery(Loader.java:943) 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:349) 
    at org.hibernate.loader.Loader.doList(Loader.java:2615) 
    at org.hibernate.loader.Loader.doList(Loader.java:2598) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2430) 
    at org.hibernate.loader.Loader.list(Loader.java:2425) 
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:502) 
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:371) 
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:216) 
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1458) 
    at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1426) 
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1398) 
    at org.hibernate.Query.getResultList(Query.java:417) 
    at cl.cbrtemuco.autoconsultas.dao.TitulosDAOImpl.searchTitulosByNombre(TitulosDAOImpl.java:51) 
    at cl.cbrtemuco.autoconsultas.service.TitulosServiceImpl.searchTitulosByNombre(TitulosServiceImpl.java:33) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) 
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) 
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) 
    at com.sun.proxy.$Proxy26.searchTitulosByNombre(Unknown Source) 
    at cl.cbrtemuco.autoconsultas.controller.TitulosController.buscarTituloPorNombre(TitulosController.java:50) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:745) 

そして最後に、私のJSPファイル:事前に

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<!DOCTYPE html> 
<html> 
<head> 
<title>Lista</title> 

<link type="text/css" rel="stylesheet" 
    href="${pageContext.request.contextPath}/resources/css/style.css"> 
</head> 
<body> 
    <div id="wrapper"> 
     <div id="header"> 
      <h2>Búsqueda de Títulos de dominio</h2> 
     </div> 
    </div> 
    <div id="container"> 
     <div id="content"> 
      <form action="buscarTituloPorNombre"> 
       <table> 
        <td> 
        <th>Búsqueda por Nombre:</th> 
        </td> 
        <td> 
        <tr> 
         <input type="textbox" name="apellidoPaterno" /> 
        </tr> 
        <tr> 
         <input type="textbox" name="apellidoMaterno" /> 
        </tr> 
        <tr> 
         <input type="textbox" name="nombres" /> 
        </tr> 
        <tr> 
         <input type="submit" value="Buscar" class="add-button" /> 
        </tr> 
        </td> 
       </table> 
      </form> 
      <form action="buscarTituloPorRsoc"> 
       <table> 
        <td> 
        <th>Búsqueda por Razón Social:</th> 
        </td> 
        <td> 
        <tr> 
         <input type="textbox" name="razonSocial" /> 
        </tr> 
        <tr> 
         <input type="submit" value="Buscar" class="add-button" /> 
        </tr> 
        </td> 
       </table> 
      </form> 
     </div> 
    </div> 
</body> 
</html> 

おかげで、と親切よろしくを持ってください。

フェルナンド

+1

おそらく、この問題が発生している可能性がある場所を正確に特定できるように、完全なスタックトレースを提供してください。 – Naros

+0

スタックトレースをコードとして追加してください。イメージとして表示されるのではなく、完全に判読不能でスクロール可能です。 –

答えて

0

あなたの三つのパラメータが空の文字列ですように聞こえます。あなたのJSPを貼り付けることはできますか?

関連する問題