Google app engine 在部署到google app engine时使用;gcloud应用程序部署“;命令,则仅部署src/main/webapp中的源代码
在过去的几年里,我一直在开发一个web应用程序(使用Java8、CSS、JS、HTML编写),并定期在GoogleAppEngine标准环境下测试它,没有任何问题。 我的应用程序的结构如下:Google app engine 在部署到google app engine时使用;gcloud应用程序部署“;命令,则仅部署src/main/webapp中的源代码,google-app-engine,deployment,gcloud,deprecated,appcfg,Google App Engine,Deployment,Gcloud,Deprecated,Appcfg,在过去的几年里,我一直在开发一个web应用程序(使用Java8、CSS、JS、HTML编写),并定期在GoogleAppEngine标准环境下测试它,没有任何问题。 我的应用程序的结构如下: myCommonEntities(完全用Java编写,编译时生成标准的.jar文件) myCommonTransactions(完全用Java编写,编译时生成标准的.jar文件) myCommonUtilities(完全用Java编写,编译时生成标准的.jar文件) myAppServer(完全用Java编
<build>
<plugins>
<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>1.9.64</version>
<configuration>
<enableJarClasses>false</enableJarClasses>
<version>1</version>
<devAppserverLogLevel>warning</devAppserverLogLevel>
</configuration>
</plugin>
</plugins>
</build>
com.google.appengine
,我意识到部署的appcfg方法已被弃用,现在已被gloud-app-deploy
方法取代。下载相同的应用程序后,我使用以下命令部署了我的应用程序:gcloud app deploy
问题是,部署的gloud-app-deploy
方法只上载src/main/webapp
文件夹中的源代码,即所有css、html和js都被上载。但是,包含实体、事务、实用程序和服务器代码的4个jar文件无法上载,这会在访问网页时导致ClassNotFoundException
所以我再次搜索,如果我遗漏了什么,我发现了。在这里,我引用了这一页的逐字广告……上面写着
一个例子
下面是一个示例,说明如何为具有两个服务的应用程序配置WAR目录结构中的各种文件:一个处理web请求的默认服务,另一个用于后端处理的服务(名为my service)。
假设顶级EAR目录是“我的应用程序”,定义文件my application/META-INF/appengine-application.xml:
就我的应用而言,上面引用的“我的服务”等同于myServerApp,而上面引用的“默认服务”等同于myWebApp
这是否意味着,在新的部署方案下,我的应用程序只有在我将上述项目结构转换为“ear”结构时才能部署?
或者,有没有一种方法可以让我在不必从现有结构更改为“ear”结构的情况下部署我的应用程序
在这件事上的任何帮助都将不胜感激。如果我完全误解了从旧方式迁移到新方式的方法,我愿意接受批评。..而且它再次发生了…..部署过程成功完成(根据控制台中的消息),但是第一次调用服务器端java类导致ClassNotFoundExeption…..这是(而且仍然是)断断续续的
结果是,当您单击Google Cloud Tools按钮->Deploy to App Engine Standard时,所有代码都转储到\.metadata\.plugins\com.Google.Cloud.Tools.eclipse.appengine.Deploy\tmp\1602065809544\staging
中,部署过程从此文件夹中部署
时间戳(这是上面文件夹名称的一部分)是启动部署的时间。在检查上面WEB-INF\lib文件夹内staging
的内容后,我意识到jar文件的大小…..CommonEntity和commonAppServer分别是10s的KBs,而不是100s的KBs和100s的MBs。这意味着部署过程不是sourcing以适当的方式部署文件
我没有能力定义适当的
,因为我不是部署过程的作者,但无论是谁,都应该对此进行调查
我的解决方案是:删除tmp
文件夹的所有内容,重建所有项目并重新部署。这有点令人厌倦,但是,它可以工作!!!Hi@user3483599请您尝试运行命令mvn-package-appengine:deploy-Dapp.deploy.projectId=PROJECT\u ID
,而不是gloud-app-deploy
这个命令应该可以让你用Maven部署应用程序。谢谢你的回复,@gso_gabriel。我一定会在这里尝试一下并更新。嗨@user3483599这个命令对你有帮助吗?我从头开始重新安装了所有东西,包括Eclipse 2020-06、用于Eclipse的Google云工具、创建了新的Eclipse项目、导入的源代码从备份到这些新创建的项目中,重新构建所有项目,然后使用Eclipse中Google Cloud Tools for Eclipse按钮中的“Deploy to App Engine Standard…”选项进行部署,结果成功了。