EJB를 호출하는 독립 실행 형 프로그램을 작성 중입니다. 그리고 EJB는 로컬 JBoss 서버에 배포됩니다. 여기 지침을 따르십시오 : 내 주요 문제를 실행하면 http://www.mastertheboss.com/jboss-server/jboss-as-7/jboss-as-7-remote-ejb-client-tutorial?showall=원격 EJB 호출
, 그것은
javax.ejb.EJBAccessException: JBAS013323: Invalid User
javax.ejb.EJBAccessException: JBAS013323: Invalid User
at org.jboss.as.ejb3.security.SecurityContextInterceptor$1.run(SecurityContextInterceptor.java:54)
at org.jboss.as.ejb3.security.SecurityContextInterceptor$1.run(SecurityContextInterceptor.java:45)
at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:78)
사람이 내가 놓친 거지 알고 있나요을 던져? 도와 주셔서 감사합니다.
내 주요 프로그램 :
private void start() throws Exception {
logger.info("----------------------program start--------------------------");
Context context = null;
try {
init();
final Hashtable<String, Object> jndiProperties = new Hashtable<>();
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
jndiProperties.put("jboss.naming.client.ejb.context",true);
jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
jndiProperties.put(Context.PROVIDER_URL,"remote://localhost:4447");
context = new InitialContext(jndiProperties);
GrainReportManagerRemote grainReportManagerRemote = (GrainReportManagerRemote) context.lookup("java:GrainEar/GrainEJB/GrainReportManager!"+ GrainReportManagerRemote.class.getName());
grainReportManagerRemote.export();
} catch (Exception e) {
logger.error(e, e);
} finally {
if (context != null)
context.close();
}
logger.info("----------------------program end--------------------------");
}
jboss-ejb-client.properties :
endpoint.name = client-endpoint
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS = false
remote.connection.default.host = localhost
remote.connection.default.port = 4447
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED = false
remote.connections = default
remote.connection.default.username=appuser
remote.connection.default.password=appuser`123
은 JBoss-EJB를 사용하는 경우에는, 코드에서 JNDI에 대한 정보를 반복 할 필요가 없습니다 -client.properties. ejb-client.properties가 클라이언트의 classpath에 있는지 확인 했습니까? –
암호와 사용자 이름을 내 사용자 지정 영역으로 전달할 수있는 것으로 나타났습니다. 그러나 매번 프로그램을 실행할 때 임의의 암호를 반환합니다. 게다가, 나는 ejb-clioent-properties를 제거하고 프로그램에서 jndi 설정을 구성했다. 내 문제는이 질문 (http://stackoverflow.com/questions/18181141/jboss7-custom-login-module-not-working)과 유사하지만 그의 jndi 구성을 따르고 여전히 임의의 암호를 반환합니다 – PrimaryChicken