Tag: spring

spring – 没有实际交易可用于当前线程的EntityManager – 不能可靠地处理“持续”呼叫

我试图调用“持久”方法来保存实体模型到我的Spring MVC Web应用程序中的数据库时,出现此错误。 在互联网上找不到任何可能与此特定错误有关的post或页面。 这看起来像EntityManagerFactory bean的东西是错误的,但我是相当新的spring编程,所以对于我来说,似乎一切都很好初始化,根据各种教程的文章在networking上。 调度员servlet.xml中 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation=" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository-1.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd"> <context:component-scan base-package="wymysl.Controllers" /> <jpa:repositories base-package="wymysl.repositories"/> <context:component-scan base-package="wymysl.beans" /> <context:component-scan base-package="wymysl.Validators" /> <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> <bean class="org.springframework.orm.hibernate4.HibernateExceptionTranslator"/> <bean id="passwordValidator" class="wymysl.Validators.PasswordValidator"></bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" […]

WebApproot在spring

我得到这个错误消息 [SEVERE:将上下文初始化事件发送给类org.springframework.web.util.Log4jConfigListener的监听器实例java.lang.IllegalStateException:Web应用程序根系统属性已设置为不同的值:'webapp.root'= [C:\ Users \ jaanlai \ Documents \ NetBeansProjects \ absSovellus \ build \ web]而不是[C:\ Users \ Administrator \ Documents \ NetBeansProjects \ keycard2 \ build \ web] – 为您的web.xml中的“webAppRootKey”上下文参数select唯一的值文件! 这很奇怪,因为我的文件中没有定义任何webAppRootKey。 它是什么?

如何使用@ResponseBody从Spring Controller返回JSON数据

Spring版本4.2.0,Hibernate 4.1.4这里是我的Controllerfunction: @RequestMapping(value = "/mobile/getcomp", method = RequestMethod.GET) @ResponseBody public List<Company> listforCompanies() { List<Company> listOfCompanies= new ArrayList<Company>(); listOfCompanies = companyManager.getAllCompanies(); return listOfCompanies; } jacksonJSON映射器依赖Pom.xml : <!– Jackson JSON Mapper –> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>${jackson.version}</version> </dependency> 获取我的ArrayList的列表,但是当返回以下错误时显示: SEVERE: Servlet.service() for servlet [dispatcherServlet] in context with path [/IrApp] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: […]

Spring-MVC:什么是“上下文”和“命名空间”?

从XmlWebApplicationContext javadoc: 默认情况下,configuration将取自“/WEB-INF/applicationContext.xml”作为根上下文,“/WEB-INF/test-servlet.xml”作为命名空间为“test-servlet”的上下文(例如对于servlet名称为“test”的DispatcherServlet实例)。 这是什么意思一个spring的情况? 什么是根环境? 还有什么其他types的spring吗? 什么是命名空间? 更新: 一些后续问题: 什么是Spring ApplicationContext – 它是否包含在configurationXML文件中定义的Bean的“事情”? 看着ContextLoaderListener的代码,它看起来像加载configurationXML文件中定义的数据。 但是我的Spring web应用程序没有定义这个监听器或任何其他监听器。 怎么会这样? Spring的DispatcherServlet有多个实例,在哪些情况下有意义? 根上下文(来自applicationContext.xml的数据)适用于DispatcherServlet的每个实例,而其他上下文(例如来自test-servlet.xml的数据)仅适用于相关的DispatcherServlet(即testing)?

Spring bean后期处理器的工作原理

我正在学习Spring Coreauthentication,我对Spring如何处理bean的生命周期 ,特别是bean后置处理器有一些疑问。 所以我有这个模式: 这对我来说很清楚这意味着什么: 进入负载Bean定义阶段发生: 对@Configuration类进行处理和/或对@Component进行扫描和/或对XML文件进行parsing。 添加到BeanFactory的Bean定义(每个定义在它的id下) 调用特殊的BeanFactoryPostProcessor bean,它可以修改任何bean的定义(例如对于属性占位符值的replace)。 然后在bean创build阶段发生: 每个bean都是默认实例化的(创build的顺序依赖于注入的依赖关系)。 在dependency injection之后,每个bean都经历一个后期处理阶段,在这个阶段中可能会进行进一步的configuration和初始化。 在后处理后,bean被完全初始化并准备好使用(通过它的id跟踪,直到上下文被销毁) 好的,这对我来说很清楚,我也知道有两种types的bean后期处理器 : 初始化程序:如果指示了初始化bean(即@PostConstruct)。 剩下的部分:允许额外的configuration,并可能在初始化步骤之前或之后运行 我张贴这张幻灯片: 因此,我很清楚初始化 bean的后处理器(它们是用@PostContruct注解来注释的方法,并且在setter方法之后立即被自动调用(所以在注入dependency injection之后),并且我知道我可以使用执行一些初始化批处理(如前一个例子中的填充caching)。 但是,究竟代表另一个豆后期处理器呢? 这意味着什么是在初始化阶段之前或之后执行的? 所以我的bean被实例化,并执行dependency injection,然后初始化阶段被执行(通过执行@PostContruct注释的方法)。 什么意思是在初始化阶段之前执行Bean Post Processor? 这意味着它发生在@PostContruct注释的方法执行之前? 所以int意味着它可能发生在dependency injection之前(在调用setter方法之前)? 究竟是什么意思,它是在初始化步骤后执行的 。 这意味着它发生在@PostContruct注释方法的执行之后,还是什么? 我可以很容易地想到我的头为什么我需要一个@PostContruct注释的方法,但我不能想出另一种豆后处理器的典型例子,你能告诉我什么时候使用的典型例子吗? TNX

如何禁用parsing作为URL参数/从URL传递的login参数

应用程序logging所有请求的url 。 这意味着,不使用url参数进行身份validation是非常重要的,因为这会导致日志满满的情况(login=abc&password=123) 。 因为这个原因,我configuration了spring-security从request-body读取参数。 这是通过将以下行添加到request-header : 'Content-Type': 'application/x-www-form-urlencoded' 身体将是: {'login':'admin', 'password':'password'} 这很好,但QA迫使我禁用通过URL参数进行身份validation的可能性。 目前,对以下URL的POST也将进行身份validation: https://example.com/foo?login=admin&password=password 有谁知道一个技巧来禁用此选项? 最好用注释。 由于评论我决定添加一些更多的细节,我的问题。 我的spring-security使用WebSecurityConfigurerAdapterconfiguration。 我有 http.usernameParameter("login") .passwordParameter("password") (…) 这使得Spring在参数和正文中searchlogin数据。 我希望禁用searchURL中的这些参数。

编程使用Spring Security

我在Wicket Auth Project中使用Wicket作为我的表示层,因此我将它与Spring Security集成在一起。 这是Wicket为我所authentication的方法: @Override public boolean authenticate(String username, String password) { try { Authentication request = new UsernamePasswordAuthenticationToken( username, password); Authentication result = authenticationManager.authenticate(request); SecurityContextHolder.getContext().setAuthentication(result); } catch (AuthenticationException e) { return false; } return true; } 我的Spring Security XMLconfiguration的内容是: <http path-type="regex"> <form-login login-page="/signin"/> <logout logout-url="/logout" /> </http> <global-method-security secured-annotations="enabled" /> <authentication-manager alias="authenticationManager"/> <authentication-provider […]

有一个在Spring上下文XML文件中创build一个string常量的简写?

我需要在由多个bean共享的Spring上下文XML文件中定义一个string值。 这是我如何做到的: <bean id="aSharedProperty" class="java.lang.String"> <constructor-arg type="java.lang.String" value="All beans need me :)"/> </bean> 通过传递一个java.lang.String的构造函数参数来创build一个java.lang.String bean似乎是kludgy。 有没有捷径? 我知道这个属性可以使用PropertyOverrideConfigurer传递,但我想保留在XML文件中的这个属性。

Controller在Spring MVC中的生命周期

Spring MVC中Controller的生命周期是什么? 控制器何时创build,何时销毁? 它在多个线程之间共享吗? 可以同时使用多个请求。

从另一个类的静态方法初始化Spring bean?

我试图创buildHibernate Validator bean,并遇到这个问题,从另一个类的静态工厂方法创build一个bean。 我发现Spring方法让我的Validator bean初始化(解决scheme在底部),但问题本身仍然没有解决。 此处使用Validator作为示例。 这是我如何在Java中创buildValidator实例 import javax.validation.Validation; import javax.validation.Validator; import javax.validation.ValidatorFactory; ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); 这是我尝试在applicationContext.xml中创buildbean的方式 <bean id="validatorFactory" class="javax.validation.ValidatorFactory" factory-method="javax.validation.Validation.buildDefaultValidatorFactory" /> <bean id="validator" class="javax.validation.Validator" factory-bean="validatorFactory" factory-method="getValidator" /> 我所理解的是,在“工厂方法”中,只能访问在“class”参数中定义的类中定义的静态方法。 由于方法buildDefaultValidatorFactory()是静态的,我不能创build一个Validation的实例,并将其作为validatorFactory的“factory-bean”,如下所示: <bean id="validation" class="javax.validation.Validation" /> <bean id="validatorFactory" class="javax.validation.ValidatorFactory" factory-bean="validation" factory-method="buildDefaultValidatorFactory" /> 这结束了错误消息 “检查具有指定名称的方法是否存在并且是非静态的 ” 问题是你如何在Spring的这种情况下创buildbean? 这就是我解决Validator问题的方法: <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>