标签: spring-3

找不到当前线程的会话(Spring 3.1.X和Hibernate 4)

我正在尝试使用Spring 3.1和Hibernate 4来设置我的项目.我一直在线学习一些教程.我得到一个奇怪的错误,根据Spring论坛应该已经修复了Spring 3.1. 春虫追踪器

当我的服务调用时getCurrentSession(),它会抛出以下异常:

org.hibernate.HibernateException: **No Session found for current thread**] with root cause org.hibernate.HibernateException: No Session found for current thread
at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:97) at
org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:881)
Run Code Online (Sandbox Code Playgroud)

****编辑:根据Spring Spring 3.1 Transactions for Transactions更新了我的spring-dao.xml .我尝试使用org.apache.commons.dbcp.BasicDataSource替换我的数据源.我的配置中是否有任何可能导致此问题的属性?****

这是我的spring-dao.xml:

 <!-- Enable annotation style of managing transactions -->
<tx:annotation-driven transaction-manager="transactionManager" />   

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
        <value>hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect</value>
    </property>
</bean>

<!-- Declare a datasource that has pooling capabilities-->   
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
            destroy-method="close"
            p:driverClass="${app.jdbc.driverClassName}"
            p:jdbcUrl="${app.jdbc.url}"
            p:user="${app.jdbc.username}"
            p:password="${app.jdbc.password}"
            p:acquireIncrement="5"
            p:idleConnectionTestPeriod="60"
            p:maxPoolSize="100" …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate spring-3 hibernate-4.x

18
推荐指数
2
解决办法
3万
查看次数

BeanFactory未初始化或已关闭 - 在访问bean之前调用'refresh'

我正在尝试将spring安全性添加到常规JSF应用程序中.经过多次尝试,我在tomcat启动时遇到以下错误.

这是整个堆栈跟踪.任何帮助表示赞赏.

编辑:进一步测试后,我注意到以下堆栈跟踪,在关于BeanFactory的第二组SEVERE异常未初始化或已经关闭之前

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderList
ener
java.lang.NoSuchMethodError: org.springframework.web.context.support.XmlWebApplicationContext.getEnvironment()Lorg/springframework/
core/env/ConfigurableEnvironment;
        at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:87)
        at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicat
ionContext.java:130)
        at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:46
7)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4704)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1315)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
        at org.apache.catalina.core.StandardService.start(StandardService.java:525)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at …
Run Code Online (Sandbox Code Playgroud)

spring-security spring-3

18
推荐指数
3
解决办法
7万
查看次数

在不使用Maven的情况下下载Spring Jars

如果您无法使用Maven或任何其他构建管理工具,如何下载Spring Framework jar.据我所知,似乎你必须花费很多令人沮丧的时间在谷歌上找出如何做到这一点.我认为Spring应该很容易.我所要做的就是使用Eclipse和Tomcat编写一个简单的Hello World应用程序.为什么Spring 3会如此困难?

spring spring-3

18
推荐指数
1
解决办法
3万
查看次数

需要了解spring.handlers和spring.schemas

我有一些问题来自我已经通过另一个问题解决的问题.但是,我仍然想知道根本原因.我的问题如下:

  1. spring.handlersspring.schemas的目的是什么?

据我所知,这是一种告诉Spring Framework在哪里找到xsd以便所有内容都正确连线和加载的方法.但...

  1. 在什么情况下我应该在META-INF文件夹下有这两个文件?

  2. 在我上面链接的另一个问题中,是否有人知道为什么我必须maven-shade-plugin在META-INF下添加创建这两个文件(基于我所有的依赖项)?换句话说,导致我必须使用maven shade插件的根本原因是什么?

spring xsd uri spring-batch spring-3

17
推荐指数
1
解决办法
2万
查看次数

Spring MVC:如何删除会话属性?

@SessionAttributes以下使用示例.如何user在向导完成后清除会话属性?在我的例子中,返回/wizard0session属性后仍然存在.我试过了status.setComplete(),session.removeAttribute("user")但它不起作用.

@Controller
@SessionAttributes("user")
public class UserWizard {

    @RequestMapping(value = "/wizard0", method = RequestMethod.GET)
    public String page1(Model model) {
        if(!model.containsAttribute("user")) {
            model.addAttribute("user", new User());
        }
        return "wizard/page1";
    }

    @RequestMapping(value = "/wizard1", method = RequestMethod.GET)
    public String page2(@ModelAttribute User user) {
        user.setFirstname(Utils.randomString());
        return "wizard/page2";
    }

    @RequestMapping(value = "/wizard2", method = RequestMethod.GET)
    public String page3(@ModelAttribute User user) {
        user.setLastname(Utils.randomString());
        return "wizard/page3";
    }

    @RequestMapping(value = "/finish", method = RequestMethod.GET)
    public String page4(@ModelAttribute User user, HttpSession …
Run Code Online (Sandbox Code Playgroud)

spring-mvc spring-3

17
推荐指数
1
解决办法
4万
查看次数

使用Spring 3注释时的最佳实践

我正在寻找使用Spring 3注释时的一些最佳实践.

我目前正在转向Spring 3,从我到目前为止所读到的内容,我看到很多重点都放在使用注释和远离XML配置上.

实际上推荐的是两种风格的混合,注释涵盖了不会经常变化的事物或者从一次运行到另一次运行的事物(例如@Controller,应用程序的生命周期将保持不变),而变化的事物和必须可配置进入XML(例如邮件smtp地址,应用程序与之交谈的Web服务的端点等).

我的问题是应该注释注释到什么程度?

在哪一点上注释会使事情变得更难而不是更容易?技术(春季3)是否完全被采用以便能够做出这样的陈述,还是需要更多的时间让人们获得经验并然后反思这个问题?

java spring annotations spring-3

16
推荐指数
2
解决办法
7078
查看次数

Spring 3安全性:未调用AccessDeniedHandler

我有一个spring 3应用程序,其配置如下.当任何用户尝试访问某个页面并且他/她未登录时,我会收到一个带有丑陋堆栈跟踪的Access is Denied异常.如何处理此异常并且不允许它转储堆栈跟踪.我实现了自己的访问被拒绝处理程序但不会被调用.

根据所请求资源的类型,我想显示自定义错误消息或页面.这是我的弹簧配置.

如何让Spring调用我的访问被拒绝处理程序.这是我的弹簧配置

 <security:http auto-config='true'>
    <security:intercept-url pattern="/static/**" filters="none"/>
    <security:intercept-url pattern="/login" filters="none"/>

      <security:intercept-url pattern="/**" access="ROLE_USER" />

      <security:form-login login-page="/index"
            default-target-url="/home" always-use-default-target="true"
            authentication-success-handler-ref="AuthenticationSuccessHandler"        
            login-processing-url="/j_spring_security_check" 
            authentication-failure-url="/index?error=true"/>

       <security:remember-me key="myLongSecretCookieKey" token-validity-seconds="1296000" 
            data-source-ref="jdbcDataSource" user-service-ref="AppUserDetailsService" />

       <security:access-denied-handler ref="myAccessDeniedHandler" />   

    </security:http>

    <bean id="myAccessDeniedHandler"
         class="web.exceptions.handlers.AccessDeniedExceptionHandler">
      <property name="errorPage" value="/public/403.htm" />
    </bean>
Run Code Online (Sandbox Code Playgroud)

下面给出了处理此异常的自定义类

public class AccessDeniedExceptionHandler implements AccessDeniedHandler
{

    private String errorPage;

    @Override
    public void handle(HttpServletRequest request, HttpServletResponse response,
            AccessDeniedException arg2) throws IOException, ServletException {
        response.sendRedirect(errorPage);
    }

       public void setErrorPage(String errorPage) {
       if ((errorPage != null) && …
Run Code Online (Sandbox Code Playgroud)

java spring-mvc spring-security spring-3

16
推荐指数
3
解决办法
3万
查看次数

找不到UsernamePasswordAuthenticationToken的AuthenticationProvider

我的web.xml配置是

<filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
Run Code Online (Sandbox Code Playgroud)

这是我的安全配置

    <intercept-url pattern="/*" access="ROLE_USER" />
    <intercept-url pattern="/*.ico"  filters="none" />


</http>

 <beans:bean id="customAuthenticationProvider" class="net.spring3.provider.MyAuthProvider"  />

    <authentication-manager>

        <authentication-provider ref="customAuthenticationProvider" /> 

    </authentication-manager>
Run Code Online (Sandbox Code Playgroud)

这是我的customAuthProvider类

public class MyAuthProvider implements AuthenticationProvider  {


    @Override
    public boolean supports(Class<? extends Object> arg0) {
        // TODO Auto-generated method stub
        return false;
    }


     @SuppressWarnings("serial")
        private static Map<String, String> SIMPLE_USERS = new HashMap<String, String>(2) {{
            put("joe", "joe");
            put("bob", "bob");
        }};

        @SuppressWarnings("serial" )
        private static List<GrantedAuthority> AUTHORITIES = new ArrayList<GrantedAuthority>(1) {{
            add(new GrantedAuthorityImpl("ROLE_USER"));
        }}; …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-security spring-3

16
推荐指数
2
解决办法
4万
查看次数

如何在JSP中使用PropertyPlaceholderConfigurer中指定的属性文件中的属性

在我的应用程序上下文中,我定义了属性文件

<context:property-placeholder  location="classpath:application.properties" />
Run Code Online (Sandbox Code Playgroud)

我想获得JSP页面上该文件中定义的属性的值.有没有办法做到这一点

${something.myProperty}?
Run Code Online (Sandbox Code Playgroud)

java spring spring-3

15
推荐指数
2
解决办法
3万
查看次数

JDBCTemplate queryForMap用于检索多行

queryForMap如果查询返回多行,我可以使用吗?

对于单行,以下代码工作正常.

public Map<String, Object> retrieveMultipleRowsColumns(String deptName){
    return jdbcTemplate.queryForMap("SELECT DEPT_ID,DEPT_NAME FROM DEPT WHERE DEPT_NAME = ?", deptName);
}
Run Code Online (Sandbox Code Playgroud)

如何修改多行?

java spring jdbctemplate spring-3

15
推荐指数
2
解决办法
4万
查看次数