JAR包冲突
JAVA_Error: Unable to reach node goal: started
java.lang.LinkageError: loader constraint violation: loader (instance of org/eclipse/jetty/webapp/WebAppClassLoader) previously initiated loading for a different type with name "javax/servlet/ServletContext"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:899)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
这里是因为新浪云SAE容器中自带了servlet jsp等一些基础的包,所以要在自己项目的Maven配置文件pom.xml 将 servlet jsp 的jar包设置为privoider
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
再次上传重新打包的war包后,就可以正常运行了。
URL地址
这个简单说下,在本地tomcat访问的URL地址是localhost/projectName/xx.jsp ,而在SAE上为projectName.applinzi.com/xx.jsp 或者 1.projectName.applinzi.com/xx.jsp 。
这里的projectName 根据SAE要求,就是你“创建应用”时候的appName。
上传的war包 ,也应该是appName.war这种格式,但具体Eclipse中的项目名应该可以不同。
MySQL配置
这里数据库MySQL要按照SAE文档所给的重新配置。