2016-08-03 30 views
0

Ich bin neu in der Alfresco-Community und ich habe Personen in der Alfresco-Community mit Java erstellt.Wie man Person im Freien Anteil durch Java zu bekommen?

Aber jetzt möchte ich diese Benutzerdaten mit Java erhalten. Ich versuche wie unten, aber es erhöht Nullzeigerausnahme.

PersonServiceImpl personServiceImpl = new PersonServiceImpl(); 
     NodeRef nodeRef = personServiceImpl.getPerson("sobhan"); 
     System.out.println("Person Service imple "+nodeRef); 

Fehler ist

Aug 03, 2016 5:43:32 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring FrameworkServlet 'testing' 
+========================================== 
uplaod file 
Aug 03, 2016 5:43:58 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [testing] in context with path [/SpringWithAlfrescoScreens] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause 
java.lang.NullPointerException 
    at org.alfresco.repo.security.person.PersonServiceImpl.getFromCache(PersonServiceImpl.java:1827) 
    at org.alfresco.repo.security.person.PersonServiceImpl.getPersonOrNullImpl(PersonServiceImpl.java:530) 
    at org.alfresco.repo.security.person.PersonServiceImpl.getPersonImpl(PersonServiceImpl.java:489) 
    at org.alfresco.repo.security.person.PersonServiceImpl.getPerson(PersonServiceImpl.java:476) 
    at org.alfresco.repo.security.person.PersonServiceImpl.getPerson(PersonServiceImpl.java:433) 
    at com.plianto.dmsservice.DummyDmsService.perm(DummyDmsService.java:70) 
    at com.service.AlfService.saveApplication(AlfService.java:116) 
    at com.controller.AlfController.saveApplication(AlfController.java:146) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:777) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:706) 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
+1

sollten Sie keine neue erstellen 'PersonServiceImpl' aber injiziere das vorhandene in die Konfiguration. – Walfrat

+0

Entschuldigung, ich verstehe nicht, was Sie gesagt haben. Bitte sagen Sie mir klar .. – Manohar

+1

Er meint, dass PersonServiceImpl eine Spring Bean ist. Sie sollten es in Ihre Klasse injizieren, anstatt eine neue PersonServiceImpl() zu erstellen. – Akah

Antwort

1

ich wieder und hier beantworten, da es schwierig ist, Code in Kommentare zu schreiben:

Wie Walfrat sagte:

Sie sollten nicht erstellen ein neuer PersonServiceImpl, aber injiziere den bestehenden in der Konfiguration.

weil der Personendienst vom Frühling gehandhabt wird.

In Ihrem Kontext-Datei für Ihren Dienst com.plianto.dmsservice.MyService, sollten Sie die bestehende Person Service auf diese Weise erklären:

<bean id="dummyDmsService" class="com.plianto.dmsservice.DummyDmsService"> 
    <property name="personService"> 
     <ref bean="PersonService" /> 
    </property> 
</bean> 

Und dann in der Klasse:

public class DummyDmsService{ 
    private PersonService personService; 

    /** 
    * @return the personService 
    */ 
    public final PersonService getPersonService() { 
     return personService; 
    } 

    /** 
    * @param pPersonService 
    *   the personService to set 
    */ 
    public final void setPersonService(final PersonService pPersonService) { 
     personService = pPersonService; 
    } 
    ... 
} 
+0

Jetzt bekomme ich "Keine Bohne mit dem Namen PersonService ist definiert" – Manohar

+0

Sind Sie in einem Kontext im Freien? Haben Sie einen Großbuchstaben für PersonService verwendet? – Akah

+0

Sorry, bitte sagen Sie mir, wie man Kontext im Freien bekommt ... – Manohar