标签: spring-3

GWT开发模式+ Spring 3.1 + Hibernate 4.0.1中的异常

我有一个GWT + Hibernate + JPA + Spring配置文件,可以使用Spring 3.0.x + Hibernate 3.6.x. 当我升级到Spring 3.1和Hibernate 4.0时,抛出以下异常:

与Hibernate 4和Spring 3.1有任何已知的不兼容性吗?

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [META-INF/application-context.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: myPu] Unable to build EntityManagerFactory
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:567)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:384)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
    at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:543)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
    at …

gwt spring jpa-2.0 spring-3 hibernate-4.x

9
推荐指数
1
解决办法
6307
查看次数

Spring 3 - 在JSP中访问Model值

我有一个JSP,我试图从我的模型中打印出值,但没有出现在我引用这些值的地方.这是我设置值的控制器方法.

@RequestMapping(value = "/poll1", method = RequestMethod.POST)
public String processPoll1(@RequestParam String vote,
        HttpServletResponse response, Model model) {
    Map<String, Object> resultMap = poll1DAO.tallyVote(vote);
    Cookie poll1 = new Cookie("poll1", "voted");
    model.addAttribute("poll1Yes", resultMap.get("yes").toString());
    model.addAttribute("poll1No", resultMap.get("no").toString());
    poll1.setMaxAge(maxSeconds);
    response.addCookie(poll1);
    return "redirect:/polls";
}
Run Code Online (Sandbox Code Playgroud)

这是JSP中引用Model属性的部分.

<table>
    <tr>
        <td><b><i>Poll #1 -- </i></b>Would you like to have a 30-year reunion in 2016?<br></td>
    </tr>
    <tr>
        <td><b>Yes</b></td>
        <td>&nbsp;&ndash;&nbsp;<c:out value='${model.poll1Yes}' /><br /></td>
    </tr>
    <tr>
        <td><b>No</b></td>
        <td>&nbsp;&ndash;&nbsp;<c:out value='${model.poll1No}' /><br />
        </td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

这是我的输出.不是实际值,而是在属性的位置打印出任何内容.

Poll #1 -- Would you like to have a …
Run Code Online (Sandbox Code Playgroud)

jsp jstl spring-3 modelattribute

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

Spring3的@Transactional @Scheduled没有承诺DB?

这是我第一次尝试Spring3的@Scheduled,但发现我无法承诺DB.这是我的代码:

@Service
public class ServiceImpl implements Service , Serializable
{
  @Inject 
  private Dao dao;

  @Override
  @Scheduled(cron="0 0 * * * ?") 
  @Transactional(rollbackFor=Exception.class)
  public void hourly()
  {
    // get xxx from dao , modify it
    dao.update(xxx);
  }
}
Run Code Online (Sandbox Code Playgroud)

我认为它应该工作,我可以看到它每小时启动并从DB加载xxx,但数据不会提交给DB.

有许多人tx:annotation-driven在春天的XML:

<bean id="entityManagerFactoryApp" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  <property name="persistenceUnitName" value="myapp"/>
</bean>
<bean id="transactionManagerApp" class="org.springframework.orm.jpa.JpaTransactionManager">
  <property name="entityManagerFactory" ref="entityManagerFactoryApp" />
</bean>

<tx:annotation-driven transaction-manager="transactionManagerApp" />
Run Code Online (Sandbox Code Playgroud)

有人能告诉我我错过了什么吗?

我有一个' '的解决方案:

@Service
public class ServiceImpl implements Service , Serializable
{
  @Inject 
  private Dao dao;

  @Inject
  @Qualifier("transactionManagerApp")
  private PlatformTransactionManager …
Run Code Online (Sandbox Code Playgroud)

spring dependency-injection scheduling transactional spring-3

8
推荐指数
2
解决办法
6908
查看次数

Spring配置初始化方法

如何告诉Spring运行该init方法?我需要获取Proxied Async类并使用它进行一些初始化.

@Configuration
@EnableAsync
public class Config  {

 @Bean
 public AsyncBean asyncProxyBean(){
    return new AsyncBean();
 }

 public void init(){
   doStuffWithProxy(asyncProxyBean());
 }

 @Bean
 public String thisIsHack(){ //this runs the init code but bean is a bit hacky
    doStuffWithProxy(asyncProxyBean());
    return "";
 }

}
Run Code Online (Sandbox Code Playgroud)

java spring spring-3

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

Spring 3 NamespaceHandler与Maven Shade插件有关

Spring 3.1.1.RELEASE与Apache Maven 3.0.3和Maven Shade插件1.6.

使用mvn shade插件将工件打包在uber-jar中,包括它的依赖项:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>1.6</version>
    <executions>
        <execution>
        <phase>package</phase>
        <goals>
            <goal>shade</goal>
        </goals>
        <configuration>
            <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                    <mainClass>com.MyApplication</mainClass>
                </transformer>
            </transformers>
        </configuration>
    </execution>
</executions>
Run Code Online (Sandbox Code Playgroud)

似乎打包很好,但在执行抱怨Spring NamespaceHandler问题:

Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/util]
Offending resource: class path resource [spring/test-context.xml]
Run Code Online (Sandbox Code Playgroud)

这适用于util和p命名空间,但期望它不限于这些:

xmlns:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"
Run Code Online (Sandbox Code Playgroud)

如果我手写重写属性或列表(util),问题就会消失.

spring maven-3 maven spring-3 maven-shade-plugin

8
推荐指数
1
解决办法
5447
查看次数

在Web感知和门户弹簧上下文中为@Scope定义的有效值在哪里?

以下允许在Spring 3.0中声明单例bean:

@Bean
@Scope(BeanDefinition.SCOPE_SINGLETON)
private void setBean1(Bean1 b1) {
    this.b1 = b1;
}
Run Code Online (Sandbox Code Playgroud)

但是,BeanDefinition没有为请求,会话和全局会话定义范围值.这些定义在哪里?否则,我应该使用@Scope("request"),@Scope("session")@Scope("global session")

java scope annotations spring-3

8
推荐指数
2
解决办法
6721
查看次数

动态更改@ManagedResource objectName

我正在以编程方式/动态创建原型bean.我想在启动后将这些bean放在jmx控制台中.我怎么能区分它们?我正在使用anotations将我的bean添加到jmx并且我有

@ManagedResource(objectName="bean:name=MybBean")
Run Code Online (Sandbox Code Playgroud)

我需要动态注入objectName.知道我怎么能这样做?

这是我的jmx配置:

<context:mbean-export server="mbeanServer" />

<bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean" />

<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter"
        lazy-init="false">

        <property name="beans">
            <map>
                <entry key="Server:name=HttpAdaptor">
                    <bean class="mx4j.tools.adaptor.http.HttpAdaptor">
                        <property name="port" value="8000" />
                        <property name="host" value="0.0.0.0" />
                        <property name="processor">
                            <bean class="mx4j.tools.adaptor.http.XSLTProcessor" />
                        </property>

                    </bean>
                </entry>                
            </map>
        </property>
        <property name="listeners">
            <list>
                <!--

                -->
                <bean class="com.fixgw.jmx.HttpAdaptorMgr">
                    <property name="mbeanServer" ref="mbeanServer" />
                </bean>
            </list>
        </property>
    </bean>

   <bean id="sessionMDB" class="com.fixgw.mdb.SessionMDB"
        scope="prototype" lazy-init="true">
        <constructor-arg ref="0" />
        <constructor-arg ref="0" />
    </bean>
Run Code Online (Sandbox Code Playgroud)

java spring jmx spring-3

8
推荐指数
2
解决办法
7768
查看次数

自定义spring 3 mvc:RequestMappingHandlerMapping的注释

我正在使用<mvc:annotation-driven/>,我想配置RequestMappingHandlerMapping禁用useTrailingSlashMatch.当我声明另一个RequestMappingHandlerMapping时,我将结束2 RequestMappingHandlerMapping.我该如何配置RequestMappingHandlerMapping

spring spring-mvc spring-3

8
推荐指数
1
解决办法
7721
查看次数

将JSR-356 WebSocket @ServerEndpoint与Spring 3 bean集成

我使用Spring 3.2.5而没有全新的JSR-356 WebSockets支持.

我想在我的@ServerEndpointWebSocket服务器中使用singleton-bean引用,它由servlet容器本身实例化,而不是在Spring上下文中实例化.

干净的方法是什么?

我目前的解决方案:我@Service在静态字段中使用实例制作了单例bean:

@Service
public class WebSocketSupportBean {
    private volatile static WebSocketSupportBean instance = null;

    public static WebSocketSupportBean getInstance() {
        return instance;
    }

    public WebSocketSupportBean() {
        instance = this;
    }
Run Code Online (Sandbox Code Playgroud)

并且只是@ServerEndpoint通过静态方法获取它,如果null返回则断开用户连接(如果在服务器启动期间bean没有创建但用户连接时):

java spring websocket spring-3 jsr356

8
推荐指数
1
解决办法
6506
查看次数

Spring MVC中的WebRequest和HttpServletRequest

两者有什么区别?两者都有getParameter方法和setAttribute方法,然后两者之间的区别?

1)哪一个更好用?

2)请解释可以使用它们的具体方案.

java spring spring-mvc spring-3

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