嗨,我有一个非常奇怪的问题。我正在开发一个项目,该项目使用 Spring 4.2.4 , Hibernate 5 和 WebSphere Liberty Profile 8.5.5 作为应用程序服务器。当我更改jsp文件的内容时,不会反映此更改,我必须每次都重新启动服务器。而是反映了对css或java文件所做的更改,我不需要重新启动服务器。
我创建了一个只有一个jsp和spring库的小项目来隔离问题,我注意到如果我从类路径中删除 spring-data-jpa 库,服务器会反映出jsp变化,一切正常。不幸的是我需要那个库。
我尝试将spring库升级到4.3.1版本,将 spring-data-jpa 升级到1.10.2版本,但没有任何变化。
这些是我使用的弹簧库:
spring-aop-4.2.4.RELEASE.jar
spring-aspects-4.2.4.RELEASE.jar
spring-beans-4.2.4.RELEASE.jar
spring-context-4.2.4.RELEASE.jar
spring-context-support-4.2.4.RELEASE.jar
spring-core-4.2.4.RELEASE.jar
spring-data-commons-1.12.1.RELEASE.jar
spring-data-commons-core-1.4.1.RELEASE.jar
spring-data-jpa-1.10.1.RELEASE.jar
spring-data-oracle-1.2.1.RELEASE.jar
spring-expression-4.2.4.RELEASE.jar
spring-instrument-4.2.4.RELEASE.jar
spring-jdbc-4.2.4.RELEASE.jar
spring-orm-4.2.4.RELEASE.jar
spring-oxm-4.2.4.RELEASE.jar
spring-tx-4.2.4.RELEASE.jar
spring-web-4.2.4.RELEASE.jar
spring-webmvc-4.2.4.RELEASE.jar
以及 server.xml
中的属性<featureManager>
<feature>javaee-7.0</feature>
<feature>localConnector-1.0</feature>
<feature>distributedMap-1.0</feature>
<feature>ejbRemote-3.2</feature>
</featureManager>
<applicationManager autoExpand="true"/>
<applicationMonitor updateTrigger="mbean"/>
我不明白 Liberty 和 spring-data-jpa 之间的相关性,为什么这个库会干扰服务器的功能?我必须在 server.xml 或 web.xml 中设置任何参数吗?
我还尝试添加所有Liberty功能(http://www.ibm.com/support/knowledgecenter/en/SS7K4U_liberty/com.ibm.websphere.wlp.zseries.doc/ae/rwlp_feat.html) 到 server.xml 但没有任何变化。
请帮助我,每次服务器重启大约需要3分钟。
提前致谢!
答案 0 :(得分:3)
这里的问题很可能与此APAR中解决的问题有关,该问题包含在WebSphere Liberty 16.0.0.2中: PI58316: Changes to JSP in EAR or WAR not picked up if CDI-1.2 feature enabled
该问题涉及在启用cdi-1.2功能时未正确重新加载的JSP文件。在这种情况下,javaee-7.0
功能会启用cdi-1.2
。如果可能,将Liberty服务器升级到16.0.0.2 fixpack应解决此问题。或者,删除javaee-7.0
功能并仅启用非cdi-1.2
功能(例如jsp-2.3
)也可以解决此问题。