귀에 패키지 된 엔터프라이즈 애플리케이션을 개발 중입니다. 귀는 하나의 Enterprise Bean 애플리케이션 (병), 하나의 JAX-RS 애플리케이션 (전쟁 중) 및 하나의 웹 애플리케이션 (전쟁 중)으로 구성됩니다. (application.xml에)WebSphere Liberty가 여러 개의 싱글 톤 EJB 인스턴스를 시작합니다.
이어 설명은 다음과 같다 :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
"-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
"http://java.sun.com/dtd/application_1_3.dtd">
<application>
<display-name>myapp-ear</display-name>
<module>
<web>
<web-uri>myapp-war-1.0.0-SNAPSHOT.war</web-uri>
<context-root>/</context-root>
</web>
</module>
<module>
<web>
<web-uri>myapp-rest-1.0.0-SNAPSHOT.war</web-uri>
<context-root>/api</context-root>
</web>
</module>
<module>
<ejb>myapp-ejb-1.0.0-SNAPSHOT.jar</ejb>
</module>
</application>
는 EJB 애플리케이션은 메소드를 포함 @Schedule @Singleton, @LocalBean 및 @Startup, 주석 싱글 톤 EJB를 포함한다.
서버가 예약 된 메소드의 세 가지 인스턴스를 동시에 시작했음을 알았고 로그를 자세히 조사하면 빈이 세 번 바인딩됨을 알 수 있습니다 (귀에있는 각 어플리케이션마다 하나씩).
이 문서 http://docs.oracle.com/javaee/6/tutorial/doc/gipjg.html
하지만에 따라입니다 :이 동작을 표시하지 않습니다 전체 프로필 WebSphere 서버에서 실행되는 유사한 응용 프로그램이 있습니다. 대신 전체 엔터프라이즈 응용 프로그램에 대해 하나의 인스턴스 만 존재합니다.
이 오류 인 경우 WLP 서버는 자바 버전 1.8.0_101
질문은에 17.0.0.1을 실행 - 아니면 WLP에서 몇 가지 중요한 설정을 놓친 거지?
있는 유일한 방법은 다음과 같습니다 더 나는, 문서화 된 기능은 많은 의미하는 경우가되지 않습니다 그것에 대해 생각 귀에 전체 애플리케이션을 패키징하고 있습니다. 일반적으로 하나의 인스턴스 만 필요합니다. 왜 모든 것을 패키지로 묶고 싱글 톤을 사용해야합니까? – danishrulez