EJB2 상태의 세션 Beans를 EJB3 단편으로 어떻게 마이그레이션합니까?
문제
EJB3 사양은 EJB2 및 EJB3이 단일 응용 프로그램에서 공존 할 수 있음을 나타냅니다.
EJB2 무국적 세션 Beans를 EJB3 상태의 세션 Bean으로 마이그레이션하고 싶습니다.
이 질문은 JPA와 전혀 관련이 없습니다 (이것은 미래에 수행 될 별도의 작업입니다).
EJB3 기능 팩이 설치되고 패치 된 상태에서 WebSphere 6.1에서 실행 중이며 프로파일이 확대됩니다 (EJB3 샘플 앱은 그것이 작동하는지 확인합니다).
단일 EJB를 2에서 3으로 변환하기 위해 내 코드, web.xml, application.xml 및 기타 WebSphere 특정 바인딩에 어떤 변경이 필요합니까?
해결책
나는 내가 갈 때 내 자신의 질문에 대답하는 데 균열이있을 것입니다.
내가 어떻게 통과했는지는 다음과 같습니다
다음 XML 파일에는 DocTypes가 있었지만 이제 네임 스페이스가 있어야합니다.
myapp.ear/meta-inf/application.xml
<application version="5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd">
myapp.ear/web.war/web-inf/web.xml
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
myapp.ear/ejb.jar/meta-inf/ejb-jar.xml
<ejb-jar id="ejb-jar_ID" version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
Web.xml에 대해 다음과 같은 변경이 이루어졌습니다
Taglib 요소는 이제 JSP-Config 요소 아래에 있습니다
디스플레이 이름 요소가 필터 요소 및 서블릿 요소에서 제거되었습니다.
myapp.ear/ejb.jar/meta-inf/ibm-ejb-jar-bnd.xmi를 제거하십시오
JNDI 조회ejblocal : [classname]을 사용하려면 모든 지역 EJB JNDI 조회를 변경하십시오.
또한 EJB-Jar.xml Mappings에서 JDBC Resource Ref를 제거하고 대신 글로벌 조회를 사용하고 있습니다.
내가 가진 보안 문제는 IBM-Application-Bnd.xmi를 제거했기 때문에 사용자와 그룹을 역할에 바인딩했기 때문입니다.
다른 팁
처음부터 언급 한 3 개의 XML 파일에 Java EE XML 네임 스페이스를 넣어야합니다. 그런 다음 파일을 바인딩하고 다른 JNDI 조회를 사용하는 것 같습니다.