Здравствуйте! Второй день пытаюсь пофиксить проблему. В проекте пытаюсь достать данные из базы, но вылетает NullPointerException
. Я думаю, что у меня неправильно инжектит бин DialogService
в класс и отсюда NPE
. Подскажите, где именно мой fail.
@Component
public class DialogSocketManager {
@Autowired
private DialogService dialogService;
@OnOpen
public synchronized void open(Session session) {
if (getDialog(session).getUser1Obj().getSession() == null) {
getDialog(session).getUser1Obj().setSession(session);
System.out.println("Установили сессию для юзера1");
} else {
getDialog(session).getUser2Obj().setSession(session);
System.out.println("Установили сессию для юзера2");
}
String u1 = getDialog(session).getUser1Obj().getUsername();
String u2 = getDialog(session).getUser2Obj().getUsername();
if (getDialog(session).getUser1Obj().getSession() != null && getDialog(session).getUser2Obj().getSession() != null) {
///Вот здесь я и получаю ошибку!
DialogEntity dialogEntity = dialogService.findByUser1User2(u1, u2);
if (dialogEntity.getFile() != null) {
FileInputStream fin = null;
try {
fin = new FileInputStream(dialogEntity.getFile().getPath());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
ObjectInputStream ois = new ObjectInputStream(fin);
try {
Dialog dialog = (Dialog) ois.readObject();
try {
getDialog(session).getUser1Obj().getSession().getBasicRemote().sendText(dialog.dequeToXmlString());
} catch (Exception e) {
e.printStackTrace();
}
try {
getDialog(session).getUser2Obj().getSession().getBasicRemote().sendText(dialog.dequeToXmlString());
} catch (Exception e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public interface DialogService {
void save(DialogEntity dialogEntity);
DialogEntity findByUser1User2(String user1,String user2);
}
@Service
public class DialogServiceImpl implements DialogService {
@Autowired
private DialogDAO dialogDAO;
@Override
public void save(DialogEntity dialogEntity) {
dialogDAO.save(dialogEntity);
}
@Override
public DialogEntity findByUser1User2(String user1, String user2) {
return dialogDAO.findByUser1AndUser2(user1,user2);
}
}
Вот ссылка на предыдущий топик связанный с этой же проблемой, мало ли..здесь
Вот собственно и ошибка:
java.lang.NullPointerException
at com.chat.my.socket.DialogSocketManager.open(DialogSocketManager.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.doOnOpen(PojoEndpointBase.java:65)
at org.apache.tomcat.websocket.pojo.PojoEndpointServer.onOpen(PojoEndpointServer.java:64)
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.init(WsHttpUpgradeHandler.java:133)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:844)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
<import resource="appconfig-mvc.xml"/>
<import resource="appconfig-data.xml"/>
<import resource="appconfig-security.xml"/>
<context:component-scan base-package="com.chat.my.*"/>
<context:property-placeholder location="classpath:database.properties"/>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Всем доброго дня! Сервер написан на Java + Spring framework + PostgresqlМне нужно выдавать JSON такого вида:
Как определить штат по координатам, без запросов к google mapЖелательно оффлайн