我正在尝试按照https://cloud.google.com/java/getting-started/using-forms?authuser=3
中提到的步骤为Java项目运行appengine要在本地计算机上运行应用程序,我发出命令:
mvn -Plocal clean jetty:run-exploded -DprojectID=[YOUR-PROJECT-ID]
但我得到以下异常:
java.lang.IllegalStateException: Invalid storage type. Check if bookshelf.storageType property is set.
at com.example.getstarted.basicactions.ListBookServlet.init(ListBookServlet.java:62)
at javax.servlet.GenericServlet.init(GenericServlet.java:244)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:637)
at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:421)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:744)
我尝试了同样的事情GCP Shell,但我得到了同样的例外。 这里可能出现什么问题?
web.xml片段
<!-- [START config] -->
<context-param>
<param-name>bookshelf.storageType</param-name>
<param-value>${bookshelf.storageType}</param-value>
</context-param>
pom.xml片段
<properties>
<!-- [START config] -->
<projectID>myProjectID</projectID> <!-- set w/ -DprojectID=myProjectID on command line -->
<bookshelf.storageType>datastore</bookshelf.storageType> <!-- datastore or cloudsql -->
<sql.dbName>bookshelf</sql.dbName> <!-- A reasonable default -->
<!-- Instance Connection Name - project:region:dbName -->
<!-- -Dsql.instanceName=localhost to use a local MySQL server -->
<sql.instanceName>${projectID}:us-central1:${sql.dbName}</sql.instanceName>
<sql.userName>root</sql.userName> <!-- A reasonable default -->
<sql.password>myRootPassword1234</sql.password> <!-- -Dsql.password=myRootPassword1234 -->
<!-- [END config] -->
请澄清。 感谢。
答案 0 :(得分:1)
此问题是由于Github repo(https://github.com/GoogleCloudPlatform/getting-started-java)中的错误引起的。 它现在解决了。如果遇到这种情况,请更新到repo的最新版本。