0

我想使用云数据源将基于 Web 的 WAR 部署到 CloudFoundry 中。

我已经定义了一个这样的bean:

       <cloud:data-source id="dataSource"/>      
       <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <property name="persistenceUnitName" value="myPersistenceUnit" />
            <property name="jpaVendorAdapter">
                   <bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
                     <property name="showSql" value="true"/>
                     <property name="generateDdl" value="true"/>

                  </bean>
            </property>           
        </bean> 
   </beans>

....但是当我尝试部署时,我得到一个 Java 代理异常:Cannot apply class transformer without LoadTimeWeaver specified

但是我不能在不上传 jar 工具代理的情况下指定 Java 代理.....

有什么解决办法??

4

1 回答 1

1

我对 EclipseLink 不是很熟悉,所以我什至不确定编织器要求是否来自 EclipseLink,但是

一种方法是将您的应用程序部署为独立应用程序(在其周围部署您自己的 tomcat),这样您就可以将额外的 weaver jar 放入lib/. 看看http://blog.cloudfoundry.org/2012/06/18/deploying-tomcat-7-using-the-standalone-framework/https://github.com/ericbottard/cloudfoundry-tomcat-7

此外,如果您只有一个数据源,您可以<cloud:datasource />通过上传常规应用程序并让 Cloud Foundry自动重新配置您的应用程序来避免使用特定于 cloudfoundry 的命名空间(此处的信息:http: //blog.springsource.org/2011/11/ 04/using-cloud-foundry-services-with-spring-part-2-auto-reconfiguration/)事实上,这可能是让 EclipseLink 在 Cloud Foundry 上无缝工作的方式(我猜这里)

当然,也可以选择切换到另一个不需要类检测的提供程序,但这有点极端。

同样,我不是 Eclipse Link 大师,所以我可能在这里遗漏了一些东西......

于 2013-01-19T17:02:20.787 回答