EJB3 + JavaEE6 + JBoss를 사용합니다. 나는 EJB에서 절대적으로 초보자 다. 이 코드 작성 : 내가있어 NullPointerException이 컴파일 후NullPointerException 및 @EJB
import server.ejb.HelloUserBean;
import javax.ejb.EJB;
public class Test
{
@EJB
public static HelloUserBean bean;
public static void main(String... args)
{
bean.sayHello("Alex");
}
}
:
package server.ejb;
@Remote
public interface HelloUser
{
void sayHello(String name);
}
@Stateless
public class HelloUserBean implements HelloUser
{
@Override public void sayHello(String name)
{
System.out.println("Hello " + name);
}
}
메이븐이 코드를 assebled 데와 제이보스에 배포, 나는 클라이언트를 썼다. 콩은 null이라고했습니다. JDNI + PersistentContext를 사용하면 성공할 수는 있지만 여전히 DI는 사용할 수 없습니다. 제발, 도와주세요
내 코드를 재구성했습니다. 사실 나는 같은 서버와 독립 실행 형 클라이언트 응용 프로그램으로 다른 서버 측 프로젝트를 작성했습니다. 여기
@Remote
public interface EchoRemote{
String getMessage();
}
@Stateless
public class EchoBean implements EchoRemote{
@Override
public String getMessage(){
return "Hello From Stateless Bean";
}
}
public class InvokationClient{
@EJB
private EchoRemote bean;
public String getMessage(){
return bean.getMessage();
}
}
그리고 클라이언트 측 독립 실행 형 응용 프로그램입니다 : 내가 '
import com.steeplesoft.client.InvokationClient;
public class Main{
public static void main(String... args) throws IOException{
InvokationClient client = new InvokationClient();
FileWriter fileWriter = new FileWriter("D:/invokation_client_test.txt");
fileWriter.write(client.getMessage());
fileWriter.close();
}
}
다음은 서버 측 응용 프로그램의 구조는 비어있는 파일과 NullPointerEception을 얻었습니다. in console
나는 당신이 나를 도울 수 있기를 바랍니다 :) 그것은 나를 위해 대단히 중요합니다!
좋아, 내가 한 일을 설명하겠습니다. 사실, 나는 내가 초보자가 아니라고 믿는다. 나는 JNDI를 통해 그것을 부를 수 있었다 - 그것은 쉬웠다. 엄청난 수의 서블릿 예제를 보았고 하나의 예제를 만들었고 성공했다. 하지만 스윙 앱을 사용하고 싶습니다. 들어 봐, 나는 내 test 클래스를 "server.client"안에 넣었다. 따라서 "클라이언트"와 "ejb"는 패키지 "서버"입니다. maven을 사용하여 프로젝트를 assebled하고 jboss에 배포했습니다. "클라이언트"가 "ejb.HelloUserBean"을 찾을 수 있다고 가정 할 때 클래스 내부에 @EJB없이 새로운 독립 실행 형 응용 프로그램을 작성했습니다. "server.project"를 가져 와서 클라이언트 메소드를 호출하고 실패했습니다.난 NullPointerException있어 : ( –
아, 당신은 응용 프로그램 클라이언트 컨테이너를 사용하려는 참조하십시오. 나는 가능한 해결책으로 이것을 추가했습니다. –