UnknownServiceException:未知服务请求(Hibernate / Spring) [英] UnknownServiceException: Unknown service requested (Hibernate/Spring)

查看:179
本文介绍了UnknownServiceException:未知服务请求(Hibernate / Spring)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我试图从我的 sessionFactor 但收到 org.hibernate.service.UnknownServiceException:未知的服务请求例外。



我不知道是什么导致了这种情况,或者这种例外的意义是什么。抛出的异常是 getCurrentSession()被调用。

  @Component 
public class RestaurantOwnerRepository实现RestauranOwnerDAO {

private SessionFactory sessionFactory;

public RestaurantOwnerRepository(SessionFactory sessionFactory){
this.sessionFactory = sessionFactory;
}

@Override
@Transactional
public List< Restaurant> getAvailableRestaurants(String sessionId){

Session session = sessionFactory.getCurrentSession();
// ..
}
}

调用我的servlet:

  @Configurable 
public class RestaurantInformationServiceImpl extends XsrfProtectedServiceServlet implements RestaurantInformationService {
private static final long serialVersionUID = -4088840947018614411L;

private final Logger logger = Logger.getLogger(RestaurantInformationServiceImpl.class);

@Autowired
public RestauranOwnerDAO restaurantOwnerRepository;

@Override
public void init(ServletConfig config)throws ServletException {
super.init(config);

ApplicationContext applicationContext = new ClassPathXmlApplicationContext(/ appServlet / servlet-context.xml);

this.restaurantOwnerRepository =(RestauranOwnerDAO)applicationContext.getBean(restaurantOwnerRepository);

((ConfigurableApplicationContext)applicationContext).close();
}

@Override
public List< RestaurantDTO> getAvailableRestaurants(){

List< Restaurant> availableRestaurants = restaurantOwnerRepository.getAvailableRestaurants(getSessionId());
//
}
}

这是我的 servlet-context.xml 文件:

 <?xml version =1.0encoding = UTF-8\" >?; 
< beans xmlns:mvc =http://www.springframework.org/schema/mvc
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance xmlns =http://www.springframework.org/schema/beans
xmlns:context =http://www.springframework.org/schema/contextxmlns:tx =http:// www.springframework.org/schema/tx
xsi:schemaLocation =http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc。 xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org / schema / tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/context http://www.springframework.org/模式/上下文/弹簧context.xsd>

<! - DispatcherServlet上下文:定义这个servlet的请求处理
infrastructure - >

<! - 启用Spring MVC @Controller编程模型 - >
< mvc:annotation-driven />

<! - 通过在$ {webappRoot} / resources目录中有效地服务
静态资源来处理/ resources / **的HTTP GET请求 - >
< mvc:resources mapping =/ resources / **location =/ resources //>

<! - 解析@Controllers对/ WEB-INF / views目录中的.jsp资源
选择的视图 - >
< bean
class =org.springframework.web.servlet.view.InternalResourceViewResolver>
< property name =prefixvalue =/ WEB-INF / views //>
< property name =suffixvalue =。jsp/>
< / bean>

< context:component-scan base-package =com.mahlzeit.web.server/>

< bean id =dataSource
class =org.springframework.jdbc.datasource.DriverManagerDataSource>
< property name =driverClassNamevalue =com.mysql.jdbc.Driver/>
< property name =usernamevalue =root/>
< property name =passwordvalue =/>
< / bean>

< bean id =sessionFactoryclass =org.springframework.orm.hibernate4.LocalSessionFactoryBean>
< property name =dataSourceref =dataSource/>
< property name =configLocationvalue =classpath:hibernate-webserver.cfg.xml/>
< / bean>


<! - < tx:注解驱动的事务管理器=transactionManager/> - >
< tx:annotation-driven />
< bean id =transactionManagerclass =org.springframework.orm.hibernate4.HibernateTransactionManager>
< property name =sessionFactoryref =sessionFactory/>
< / bean>

< bean id =restaurantOwnerRepositoryclass =com.mahlzeit.web.server.dao.RestaurantOwnerRepository>
< constructor-arg>
< ref bean =sessionFactory/>
< / constructor-arg>
< / bean>

< / beans>

以下是我的 hibernate-webserver.cfg.xml 文件:

 <?xml version =1.0encoding =utf-8?> 
<!DOCTYPE hibernate-configuration PUBLIC
- // Hibernate / Hibernate配置DTD 3.0 // EN
http://hibernate.sourceforge.net/hibernate-configuration-3.0 .dtd>
< hibernate-configuration>
< session-factory>

< property name =connection.url> jdbc:mysql:// localhost:3306 / mahlzeit_db< / property>
< property name =connection.username> root< / property>
< property name =connection.password>< / property>
< property name =connection.driver_class> com.mysql.jdbc.Driver< / property>
< property name =dialect> org.hibernate.dialect.MySQLDialect< / property>

<! - 批量大小 - >
<! - < property name =hibernate.jdbc.batch_size> 20< / property> - >

<! - 将所有执行的SQL回复到stdout - >
< property name =show_sql> false< / property>
< property name =format_sql> false< / property>

<! - 在启动时删除并重新创建数据库模式 - >
<! - < property name =hibernate.hbm2ddl.auto> create-drop< / property> - >
<! - 在更新模式下运行休眠 - >
< property name =hibernate.hbm2ddl.auto>更新< / property>

<! - JDBC连接池(使用内置) - >
< property name =connection.pool_size> 1< / property>
<! - 将getCurrentSession()方法绑定到线程 - >
<! - < property name =current_session_context_class>线程< / property> - >

<! - 映射... - >

< / session-factory>

< / hibernate-configuration>

错误讯息/堆栈追踪:

  com.google.gwt.user.server.rpc.UnexpectedException:Service方法'public abstract java.util.List com.mahlzeit.web.shared.service.restaurant.RestaurantInformationService.getAvailableRestaurants() '引发了一个意外的异常:org.hibernate.service.UnknownServiceException:请求的服务未知[org.hibernate.service.jdbc.connections.spi.ConnectionProvider] 
,位于com.google.gwt.user.server.rpc.RPC .encodeResponseForFailure(RPC.java:415)
位于com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:605)
位于com.google.gwt.user.server .rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:333)
,位于com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:303)
,位于com.google.gwt .user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:373)
,com.google.gwt .user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet 。服务(HttpServlet.java:728)
处org.apache.catalina.core.ApplicationFilterChain.doFilter org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
(ApplicationFilterChain .java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java :243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
在org.apache.c atalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves。 ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:
at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java: 312)
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
在java.util.concurrent.ThreadP oolExecutor $ Worker.run(ThreadPoolExecutor.java:615)$ b $在java.lang.Thread.run(Thread.java:745)
引起:org.hibernate.service.UnknownServiceException:请求的未知服务[ org.hibernate.service.jdbc.connections.spi.ConnectionProvider]
在org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:126)
在org.hibernate.internal.AbstractSessionImpl。 getJdbcConnectionAccess(AbstractSessionImpl.java:261)
在org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl。< init>(JdbcCoordinatorImpl.java:97)
在org.hibernate.engine.transaction.internal (TransactionCoordinatorImpl.java:87)
在org.hibernate.internal.SessionImpl。 $ SessionBuilderImpl.openSession(SessionFactoryImpl.java:1609)
在org.hibernate.internal.SessionFa ctoryImpl.openSession(SessionFactoryImpl.java:973)
在org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:122)
在org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl。
at com.mahlzeit.web.server.dao.RestaurantOwnerRepository.getAvailableRestaurants(RestaurantOwnerRepository.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在java.lang.reflect.Method.invoke(方法。的java:在org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317 606)

。在org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
在org.spr ingframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
在org.springframework.transaction.interceptor.TransactionInterceptor $ 1.proceedWithInvocation(TransactionInterceptor.java:98)
在org.springframework.transaction .interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:266)
在org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
在org.springframework.aop.framework.ReflectiveMethodInvocation .proceed(ReflectiveMethodInvocation.java:179)
在org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)在com.sun.proxy
,$ Proxy50.getAvailableRestaurants(来源不明)
at com.mahlzeit.web.server.service.restaurant.RestaurantInformationServiceImpl.getAvailableRestaurants(RestaurantInformationServiceImpl.java:50)
at sun.reflect.Nati veMethodAccessorImpl.invoke0(本机方法)
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
。在java.lang.reflect.Method.invoke(Method.java:606)
,位于com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:587)
... 25更多

我只是不知道如何解决这个问题。
任何帮助,这将不胜感激!

解决方案

事实证明,必须非常小心警告if一个涉及一个未知的技术..



我不知道为什么它来评论行

 ((ConfigurableApplicationContext)applicationContext).close(); 

位于 init(ServletConfig config)之中

  @Override 
public void init(ServletConfig config)throws ServletException {
super.init(config) ;

ApplicationContext applicationContext = new ClassPathXmlApplicationContext(/ appServlet / servlet-context.xml);

this.restaurantOwnerRepository =(RestauranOwnerDAO)applicationContext.getBean(restaurantOwnerRepository);

//((ConfigurableApplicationContext)applicationContext).close();
}

不关闭应用程序上下文确实有帮助这里..



我没有想过这件事。我只是遵循Eclipse中的警告


资源泄漏:'applicationContext'永远不会关闭


并没有明显的想法关闭它。


This problem bothers me now for days ..

I'm trying to get the current session from my sessionFactor but receive an org.hibernate.service.UnknownServiceException: Unknown service requested exception.

I have no idea what causes this or what this exception does mean in particular. The exception gets thrown as getCurrentSession()gets called.

@Component
public class RestaurantOwnerRepository implements RestauranOwnerDAO {

    private SessionFactory sessionFactory;

    public RestaurantOwnerRepository(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    @Override
    @Transactional
    public List<Restaurant> getAvailableRestaurants(String sessionId) {

        Session session = sessionFactory.getCurrentSession();
        // ..
    }
}

which I am calling in my servlet:

@Configurable
public class RestaurantInformationServiceImpl  extends XsrfProtectedServiceServlet implements RestaurantInformationService {
    private static final long serialVersionUID = -4088840947018614411L;

    private final static Logger logger = Logger.getLogger(RestaurantInformationServiceImpl.class);

    @Autowired
    public RestauranOwnerDAO restaurantOwnerRepository;

    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);

        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/appServlet/servlet-context.xml");

        this.restaurantOwnerRepository = (RestauranOwnerDAO)applicationContext.getBean("restaurantOwnerRepository");

        ((ConfigurableApplicationContext)applicationContext).close();
    }

    @Override
    public List<RestaurantDTO> getAvailableRestaurants() {

        List<Restaurant> availableRestaurants = restaurantOwnerRepository.getAvailableRestaurants(getSessionId());
        // ..
    }
}

This is my servlet-context.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- DispatcherServlet Context: defines this servlet's request-processing 
        infrastructure -->

    <!-- Enables the Spring MVC @Controller programming model -->
    <mvc:annotation-driven />

    <!-- Handles HTTP GET requests for /resources/** by efficiently serving 
        up static resources in the ${webappRoot}/resources directory -->
    <mvc:resources mapping="/resources/**" location="/resources/" />

    <!-- Resolves views selected for rendering by @Controllers to .jsp resources 
        in the /WEB-INF/views directory -->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>

    <context:component-scan base-package="com.mahlzeit.web.server" />

    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/mahlzeit_db" />
        <property name="username" value="root" />
        <property name="password" value="" />
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:hibernate-webserver.cfg.xml" />
    </bean>


<!--    <tx:annotation-driven transaction-manager="transactionManager"/> -->
    <tx:annotation-driven/>
    <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <bean id="restaurantOwnerRepository" class="com.mahlzeit.web.server.dao.RestaurantOwnerRepository">
        <constructor-arg>
            <ref bean="sessionFactory" />
        </constructor-arg>
    </bean>

</beans>

And this my hibernate-webserver.cfg.xml file:

<?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">
<hibernate-configuration>
    <session-factory>

        <property name="connection.url">jdbc:mysql://localhost:3306/mahlzeit_db</property>
        <property name="connection.username">root</property>
        <property name="connection.password"></property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Batch size -->
        <!-- <property name="hibernate.jdbc.batch_size">20</property> -->

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">false</property>
        <property name="format_sql">false</property>

        <!-- Drop and re-create the database schema on startup -->
        <!-- <property name="hibernate.hbm2ddl.auto">create-drop</property> -->
        <!-- Run Hibernate in update mode -->
        <property name="hibernate.hbm2ddl.auto">update</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>
        <!-- Bind the getCurrentSession() method to the thread -->
        <!-- <property name="current_session_context_class">thread</property> -->

        <!-- Mappings ... -->

    </session-factory>

</hibernate-configuration>

Error message/stack trace:

com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.util.List com.mahlzeit.web.shared.service.restaurant.RestaurantInformationService.getAvailableRestaurants()' threw an unexpected exception: org.hibernate.service.UnknownServiceException: Unknown service requested [org.hibernate.service.jdbc.connections.spi.ConnectionProvider]
        at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:415)
        at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:605)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:333)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:303)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:373)
        at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: org.hibernate.service.UnknownServiceException: Unknown service requested [org.hibernate.service.jdbc.connections.spi.ConnectionProvider]
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:126)
        at org.hibernate.internal.AbstractSessionImpl.getJdbcConnectionAccess(AbstractSessionImpl.java:261)
        at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.<init>(JdbcCoordinatorImpl.java:97)
        at org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.<init>(TransactionCoordinatorImpl.java:87)
        at org.hibernate.internal.SessionImpl.<init>(SessionImpl.java:254)
        at org.hibernate.internal.SessionFactoryImpl$SessionBuilderImpl.openSession(SessionFactoryImpl.java:1609)
        at org.hibernate.internal.SessionFactoryImpl.openSession(SessionFactoryImpl.java:973)
        at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:122)
        at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:988)
        at com.mahlzeit.web.server.dao.RestaurantOwnerRepository.getAvailableRestaurants(RestaurantOwnerRepository.java:62)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
        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:98)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:266)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
        at com.sun.proxy.$Proxy50.getAvailableRestaurants(Unknown Source)
        at com.mahlzeit.web.server.service.restaurant.RestaurantInformationServiceImpl.getAvailableRestaurants(RestaurantInformationServiceImpl.java:50)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:587)
        ... 25 more

I just don't have any idea how to solve that problem. Any help on this would be appreciated!

解决方案

It turns out that one has to be quite careful with warnings if one deals with an unknown technology..

I don't know why it came up to me to comment out the line

((ConfigurableApplicationContext)applicationContext).close();

in init(ServletConfig config) as such

@Override
public void init(ServletConfig config) throws ServletException {
    super.init(config);

    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/appServlet/servlet-context.xml");

    this.restaurantOwnerRepository = (RestauranOwnerDAO)applicationContext.getBean("restaurantOwnerRepository");

    //((ConfigurableApplicationContext)applicationContext).close();
}

but not closing the application context sure did help here..

I didn't thought about this. I just followed the warning in Eclipse

Resource leak: 'applicationContext' is never closed

and closed it without thinking obviously..

这篇关于UnknownServiceException:未知服务请求(Hibernate / Spring)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆