2013-11-28 3 views
0

에는 *LocalServiceImpl에 쓰는 메소드가 없습니다. 나는 서비스 빌더를 매번 다시 실행한다. 메소드는 로컬 서버에서는 인식되지만 프로덕션 서버에서는 인식되지 않습니다. 모든 오래된 메소드가 작동하고 새로운 작성 메소드가 없습니다. 무엇이 문제 일 수 있습니까? 감사. 두 서버에서 Liferay 6.1.1 GA2를 사용하고 있습니다.Liferay : * LocalServiceUtpl에 작성된 모든 메소드가 * 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을 계속 사용하고 있기 때문에 여전히 이전 메소드를 볼 수 있습니다. 내 조언은 빌드 서비스 로그를 확인하고 서비스 빌드 작업에 실패하는 오류를 찾는 것입니다.

편집 : 때때로 포털 배포 메커니즘 또는 동적 클래스 로딩과의 충돌로 인해 이전 서비스 항아리의 클래스로드가 발생할 수 있습니다. . 당신이 당신의 웹 애플리케이션은 합법적 인 것이 확실하지만 배포가 실패하면 고장 안전 절차는 응용 프로그램을 배포하고 있는지 확인하는 것입니다

  1. 포털 웹 어플리케이션에서 응용 프로그램 폴더를 삭제 포털
  2. 를 종료합니다.
  3. work/catalina/localhost에서 app 폴더를 삭제하십시오.
  4. /deploy에 새로운 webapp를 복사하고 포털을 시작하십시오.

보너스 힌트 : 실행중인 원격 포털에 배포하는 경우 .war을 원격 시스템으로 복사 한 다음/deploy 폴더로 옮기는 것이 좋습니다. 그렇지 않으면 연결 속도가 느려지면 .war 전송이 완료되기 전에 배포가 시작될 수 있으며, 톰캣을 다시 시작할 때까지 delpoyment가 실패하고 앱이 계속 블랙리스트에 남을 수 있습니다.

+0

로그가 괜찮아 보입니다. .jar를 새로 고치거나 다시 작성하는 데 실패한 것 같습니다. tomcat/webapps 내의 포틀릿의 app 폴더를 삭제하고 재구성해볼 수 있습니까? – yannicuLar

+0

이것은 얼마나 많은 데미지를 줄 수 있습니까? –

+0

전혀 손상이 없습니다. 나는 그 많은 시간을 할 것을 강요 당한다. 전개 된 포틀릿이 추출되는 폴더입니다. 비어있는 경우 Liferay 서버가 다시 작성하려고 시도합니다. – yannicuLar

0

방법의 가시성을 확인할 수 있습니까? ?

서비스 빌더는 * LocalServiceImpl의 공용 메소드에 대해 * LocalServiceUtil 메소드 만 작성합니다.

* LocalServiceImpl 메서드가 무슨 일이 일어나고 있는지 이해하려고 시도하는 것이 유용 할 것입니다.

0

서비스를 빌드 할 때 생성되는 service.jar을 삭제해야합니다. 이제 service.xml을 빌드하고 메소드가 util 클래스로 채워지는지 확인하십시오.

여러 포틀릿이 공유하는 Tomcat_home \ lib \ ext 아래에 .jar 파일을 두어보십시오.

0

이 문제는 오래된 문제이지만 여전히 대답이 없습니다. this question이이 오래된 문제를 언급했기 때문에 제 관심이 왔습니다. 누군가 다른 사람이 실수를 저지른 경우에는 다음과 같이 추측 해 봅니다. (내 대답에서 다른 질문에 대한) 늦은 추측이 있습니다.

우선 : *LocalServiceUtil의 소스 코드를 확인하고 실제로 그렇지 않은지 확인하십시오. 메소드의 구현을 가져라. 그 방법이 있다면, 당신은 다른 곳을 봐야 할 것입니다.

포틀릿을 배포 할 때 여러 가지 방법으로 API를 얻을 수 있습니다. 누군가가 tomcat의 글로벌 클래스 경로에 서비스가 포함 된 플러그인을 배포했을 수 있습니다. 중 하나가인데 업데이트하지 않으면 업데이트가 표시되지 않을 수 있습니다.

또한 누군가가 자신의 플러그인에 이전 버전의 플러그인을 복사했을 수도 있습니다. 종속성을 업데이트하지 않는 한 자연스럽게 업데이트가 표시되지 않습니다. jar 파일의 변경된 이름도 확인하십시오. 또한 클래스를 확인하십시오. 일부 사람들은 컴파일 된 Java 클래스를 소스 디렉토리에 추가하여 동일한 코드의 두 가지 구현으로 끝나기를 원합니다.