exception is java.lang.NoSuchMethodError: javax.persistence.UniqueConstraint.name()Ljava/lang/String
参照处理思路来自:https://blog.csdn.net/chs_jdmdr/article/details/7547434
1. 开始觉得是jar包冲突,找javax.persistence.UniqueConstraint相同的路径的类,没找到;然后各种删除jar,没用
2.解决办法是要把war包打包成ear包的形式部署:
步骤1: 新建EJB-Project
直接finish:
下面是项目实际的目录:
步骤2:在bbb/EarContent 下新建目录META-INF;将需要发布的war包拷贝到该目录的同级目录下。
步骤3:在META-INF下新建两个文件:application.xml 和weblogic-application.xml ,具体内容如下:
application.xml的内容: |
<?xml version="1.0" encoding="UTF-8"?> <application id="wlsEAR0911" version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"> <display-name>wls</display-name> 显示名称,不讲究 <module id="WebModule_bwp"> <web> <web-uri>bwp0911.war</web-uri> 你的war包,不要配错了 <context-root>bwp</context-root> 你的访问路径,不要配错了 </web> </module> </application> |
weblogic-application.xml 这个文件可以不修改 |
<?xml version="1.0"?> <weblogic-application xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <application-param> <param-name>webapp.encoding.default</param-name> <param-value>UTF-8</param-value> </application-param> <prefer-application-packages> <package-name>org.apache.commons.*</package-name> <package-name>antlr.*</package-name> <package-name>javax.persistence.*</package-name> </prefer-application-packages> </weblogic-application> |
步骤3:打包成ear包:
右键-export -- 选择ear file:
ear包制作完成。
3. 在weblogic的console下部署ear包,这个跟其他的war包部署一样。第一次直接war包失败,改成ear包,部署成功。