2013-11-28 47 views
0

我在*LocalServiceImpl中編寫的任何方法都未在*LocalServiceUtil中找到。我每次都重新運行服務構建器,一無所獲。這些方法在本地服務器上被識別,但在生產服務器中找不到。所有舊的方法正在工作,只是沒有找到新的書面方法。可能是什麼問題呢?謝謝。我在兩臺服務器上都使用Liferay 6.1.1 GA2。Liferay:在* LocalServiceImpl中找不到的任何方法* LocalServiceUtil中找不到

這是我的服務構建器登錄

 [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和潘卡Kathiriya說。謝謝.....

+0

另外檢查版本號在service.properties中正確更新 –

+0

我應該把更高的內部版本號? –

+0

是的,嘗試一下。另外,如果你可以做乾淨的部署[刪除],然後去用它 –

回答

3

很可能,您的服務構建失敗。您仍然可以看到舊方法,因爲您仍然使用舊的.jar,這是最後一個成功構建的方法。我的建議是檢查構建服務日誌並找到服務構建任務失敗的錯誤

編輯:有時,來自Portal Deployment機制的衝突或動態類加載可能會導致從舊的服務器jar中加載類。如果你確信你的web應用程序是合法的,但部署失敗,故障安全的程序,以確保您將應用程序部署是:

  1. 關閉門戶
  2. 從門戶網站的webapps刪除應用程序文件夾中。
  3. 刪除工作中的應用程序文件夾/ Catalina/localhost
  4. 將新鮮的webapp複製到/ deploy並啓動門戶。

獎勵提示:如果您正在部署到正在運行的遠程門戶,那麼將.war複製到遠程系統並將其移至/ deploy文件夾是很好的。否則,如果您的連接速度較慢,那麼可能會在.war傳輸完成之前啓動部署,delpoyment將失敗,並且您的應用將保持黑名單狀態,直到您重新啓動您的tomcat。

+0

你的日誌看起來不錯。看起來像一個失敗刷新或重寫.jar你可以嘗試刪除tomcat/webapps內的portlet的應用程序文件夾,並嘗試重建? – yannicuLar

+0

這可以造成多少傷害? –

+0

完全沒有損害。我被迫做了很多次。這是您部署的portlet被提取的文件夾。如果它是空的,Liferay Server將嘗試再次創建它 – yannicuLar

0

您是否可以檢查方法的可見性: ?

服務構建器僅爲* LocalServiceImpl的公共方法創建* LocalServiceUtil方法。

查看您的LocalServiceImpl方法試圖瞭解發生了什麼會很有用。

0

那麼你應該刪除在構建服務時創建的service.jar。 現在再次構建service.xml並檢查您的方法將在util類下進行填充。

如果正由多個portlet共享,請嘗試將該.jar文件放在Tomcat_home \ lib \ ext下。

0

這是一個老問題,但仍然沒有被接受的答案。由於this question提到了這個老問題,所以引起了我的注意。如果有人絆倒它,這裏是一個錯誤的猜測(從我的回答到另一個問題):

首先:檢查你的*LocalServiceUtil的源代碼,並確保它確實沒有有方法的實現。如果方法在那裏,你必須看看其他地方。這裏是:

當你部署一個portlet時,你可以通過多種方式獲得API:有人可能已經在tomcat的全局類路徑中部署了包含這些服務的插件。如果你沒有更新那一個,你可能不會看到你的更新。另外,有人可能已經將舊版本的插件複製到自己的插件中 - 除非更新其依賴關係,否則自然不會看到任何更新。檢查jar文件的更改名稱。還要檢查這些類:有些人喜歡將編譯的java類添加到它們的源代碼目錄中,最後得到兩個不同的相同代碼的實現。