문제

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 조회를 사용하는 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top