*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说的那样。感谢.....
答案 0 :(得分:3)
最有可能的是,您的服务构建失败了。您仍然可以看到旧方法,因为您仍在使用旧的.jar,这是最后一个成功构建的方法。我的建议是检查构建服务日志并找到服务构建任务失败的错误
编辑:有时,来自Portal部署机制的冲突或动态类加载可能导致从旧服务jar加载类。如果您确定您的Web应用程序合法但部署失败,则确保部署应用程序的故障安全过程是:
Bonus提示:如果要部署到正在运行的远程Portal中,最好将.war复制到远程系统中,然后将其移至/ deploy文件夹。否则,如果您的连接速度很慢,则部署可能会在.war传输完成之前启动,但是,在您重新启动tomcat之前,您的应用程序将保持黑名单
答案 1 :(得分:0)
你能检查你的方法的可见性:它们是公开的吗?
服务构建器仅为* LocalServiceImpl。
的公共方法创建* LocalServiceUtil方法查看您的* LocalServiceImpl方法以了解正在发生的事情会很有用。
答案 2 :(得分:0)
那么你应该删除在构建服务时创建的service.jar。 现在再次构建service.xml并检查你的方法是否会在util class下填充。
如果多个portlet共享该文件,请尝试将该.jar文件放在Tomcat_home \ lib \ ext下。
答案 3 :(得分:0)
这是一个老问题,但仍然没有接受答案。正如this question提到了这个老问题,它引起了我的注意。万一其他人偶然发现它,这是对可能出错的最新猜测(从我对另一个问题的回答):
首先:检查*LocalServiceUtil
的源代码,确保它确实没有方法的实现。如果方法在那里,你将不得不寻找其他地方。这里是:
部署portlet时,可以通过多种方式获取API:有人可能在tomcat的全局类路径上部署了包含服务的插件。如果您没有更新那个,则可能无法看到您的更新。
此外,有人可能已将您的插件的旧版本复制到他们自己的插件中 - 除非他们更新其依赖项,否则自然不会看到任何更新。检查jar文件的更改名称。还要检查类:有些人喜欢将已编译的java类添加到其源目录中,最后会使用相同代码的两个不同实现。