0

我写的任何方法*LocalServiceImpl*LocalServiceUtil. 我每次都重新运行服务构建器,什么也没有。这些方法在本地服务器上被识别,但在生产服务器中找不到。所有旧方法都在工作,只是没有找到新的书面方法。可能是什么问题呢?谢谢。我在两台服务器上都使用 Liferay 6.1.1 GA2。

这是我的服务生成器日志

     [echo] Loading jar:file:/C:/sbl-workspace-1/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/system.properties
     [echo] 28.11.2013 08:30:46 com.liferay.portal.kernel.log.Jdk14LogImpl info
     [echo] INFO: Global shared lib directory /C:/sbl-workspace-1-plugins-sdk/liferay-plugins-sdk-6.1.1/lib/
     [echo] 28.11.2013 08:30:46 com.liferay.portal.kernel.log.Jdk14LogImpl info
     [echo] INFO: Global lib directory /C:/sbl-workspace-1/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/lib/ext/
     [echo] 28.11.2013 08:30:46 com.liferay.portal.kernel.log.Jdk14LogImpl info
     [echo] INFO: Portal lib directory /C:/sbl-workspace-1/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/webapps/ROOT/WEB-INF/lib/
     [echo] 28.11.2013 08:30:47 com.liferay.portal.kernel.log.Jdk14LogImpl info
     [echo] INFO: Properties for portal loaded from [file:/C:/sbl-workspace-1/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/webapps/ROOT/WEB-INF/classes/portal-ext.properties, jar:file:/C:/sbl-workspace-1/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/com/liferay/portal/tools/dependencies/portal-tools.properties, jar:file:/C:/sbl-workspace-1/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/portal.properties]
     [echo] Loading jar:file:/C:/sbl-workspace-1/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/portal.properties
     [echo] Loading jar:file:/C:/sbl-workspace-1/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/com/liferay/portal/tools/dependencies/portal-tools.properties
     [echo] Loading file:/C:/sbl-workspace-1/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/webapps/ROOT/WEB-INF/classes/portal-ext.properties
     [echo] Building Menus
     [echo] Building MenusImages
     [echo] Building Sections
    [mkdir] Created dir: C:\sbl-workspace-1-plugins-sdk\liferay-plugins-sdk-6.1.1\portlets\AdminSBL-portlet\docroot\WEB-INF\service-classes
    compile-java:
     [copy] Copied 65 empty directories to 65 empty directories under C:\sbl-workspace-1-plugins-sdk\liferay-plugins-sdk-6.1.1\portlets\AdminSBL-portlet\docroot\WEB-INF\service-classes
    [javac] Compiling 398 source files to C:\sbl-workspace-1-plugins-sdk\liferay-plugins-sdk-6.1.1\portlets\AdminSBL-portlet\docroot\WEB-INF\service-classes
      [zip] Building zip: C:\sbl-workspace-1-plugins-sdk\liferay-plugins-sdk-6.1.1\portlets\AdminSBL-portlet\docroot\WEB-INF\lib\AdminSBL-portlet-service.jar
      [delete] Deleting directory C:\sbl-workspace-1-plugins-sdk\liferay-plugins-sdk-6.1.1\portlets\AdminSBL-portlet\docroot\WEB-INF\service-classes
      BUILD SUCCESSFUL
      Total time: 37 seconds

已解决:它像 yannicular 和 Pankaj Kathiriya 所说的那样工作。谢谢.....

4

4 回答 4

3

很可能,您的服务构建失败了。您仍然可以看到旧方法,因为您仍在使用旧的 .jar,这是最后一个成功构建的。我的建议是检查构建服务日志并找到导致服务构建任务失败的错误

编辑:有时,来自门户部署机制的冲突或动态类加载可能会导致从旧服务 jar 加载类。如果您确定您的 web 应用程序是合法的,但部署失败,那么确保您正在部署应用程序的故障安全程序是:

  1. 关闭门户
  2. 从门户网站 webapps 中删除应用程序文件夹。
  3. 从 work/Catalina/localhost 中删除 app 文件夹
  4. 将新的 webapp 复制到 /deploy 并启动门户。

额外提示:如果您要部署到正在运行的远程 Portal,最好将您的 .war 复制到远程系统中,然后将其移动到 /deploy 文件夹。否则,如果您的连接速度很慢,部署可能会在 .war 传输完成之前开始,部署失败并且您的应用程序会一直被列入黑名单,直到您重新启动您的 tomcat

于 2013-11-28T07:56:20.653 回答
0

你能检查你的方法的可见性:它们是公开的吗?

服务生成器只为 *LocalServiceImpl 的公共方法创建 *LocalServiceUtil 方法。

查看您的 *LocalServiceImpl 方法以尝试了解正在发生的事情会很有用。

于 2013-11-29T08:48:25.000 回答
0

好吧,您应该删除在构建服务时创建的 service.jar。现在再次构建 service.xml 并检查您的方法将在 util 类下填充。

如果该 .jar 文件被多个 portlet 共享,请尝试将该 .jar 文件放在您的 Tomcat_home\lib\ext 下。

于 2013-12-01T13:57:52.770 回答
0

这是一个老问题,但仍然没有公认的答案。当这个问题提到这个老问题时,它引起了我的注意。万一其他人偶然发现它,这是对可能出了什么问题的最新猜测(来自我对另一个问题的回答):

首先:检查您的源代码*LocalServiceUtil并确保它确实没有该方法的实现。如果该方法在那里,您将不得不寻找其他地方。这里是:

当您部署一个 portlet 时,您可以通过多种方式获取 API: 有人可能已经在 tomcat 的全局类路径上部署了包含服务的插件。如果您不更新那个,您可能不会看到您的更新。

此外,有人可能也将旧版本的插件复制到他们自己的插件中 - 自然不会看到任何更新,除非他们更新他们的依赖项。还要检查 jar 文件的更改名称。还要检查类:有些人喜欢将编译后的 java 类添加到他们的源目录中,最终得到相同代码的两个不同实现。

于 2015-06-08T11:29:27.000 回答