2012-04-03 2 views
2

JavaPOS를 사용하여 사용자의 로컬 시스템에있는 지불 터미널과 통신하는 애플릿을 만들었습니다.Java 애플릿이 JavaPOS 구성 파일을 찾을 수 없습니다.

Eclipse IDE 내에서 실행하면 애플릿은 제대로 작동하지만 브라우저에서 실행하면 제대로 작동하지 않습니다. 브라우저에서 애플릿은 jpos/res/jpos.properties 및 jposxml.cfg 파일을 찾을 수 없습니다.

다음 문이 애플릿을 실행하면 (시작() 메소드) (init이되지 않음) :

jpos/res/jpos.properties file not found 
jpos/res/jpos.properties file not found 
jpos/res/jpos.properties file not found 
:
JposEntryRegistry registry = JposServiceLoader.getManager().getEntryRegistry(); 
registry.load(); 

내가 자바 콘솔 창에 출력되는 내용입니다

그리고 JposEntry 레지스트리에 항목이로드되지 않습니다.

나는 두 파일 "을 참조하십시오"애플릿을 얻기 위해 다음과 같은 노력했습니다 :

  1. JPOS의/입술/jpos.properties 이미 애플릿에 의해 참조되는 단지 중 하나에 존재한다. 그럼에도 불구하고이 파일을 애플릿의 주 병에 추가했습니다. 나는 또한 올바른 상대 경로와 함께 병을 포함하는 서버의 디렉토리에 추가하려고했습니다. 이 중 아무 것도 작동하지 않습니다.

  2. 내가 jpos.properties의 무능력를 해결할 수

  3. 은 다음과 같이 적절한 값으로 시스템 속성을 설정하여 찾을 수 :

    System.setProperty("jpos.loader.serviceManagerClass", "jpos.loader.simple.SimpleServiceManager"); 
    System.setProperty("jpos.config.populatorFile", "jposxml.cfg"); 
    System.setProperty("jpos.util.tracing.TurnOnNamedTracers", "JposServiceLoader,SimpleEntryRegistry,SimpleRegPopulator,XercesRegPopulator"); 
    System.setProperty("jpos.util.tracing.TurnOnAllNamedTracers", "ON"); 
    

    그러나, 애플릿이 여전히 jposxml.cfg을 찾을 수 없습니다. 이 파일은, 애플릿의 메인 jar 파일의 루트에 있습니다. 나는 항아리와 같은 디렉토리에 서버를 설치하려고 시도했다. 또한 jposxml.cfg 만 들어있는 별도의 jar 파일을 만들려고했으나 작동하지 않습니다. Java 콘솔 창에 다음 출력이 표시됩니다.

    [AbstractRegPopulator]getPopulatorFileIS(): populatorFileName=jposxml.cfg 
    [JposServiceLoader]manager.getEntryRegistry().load() OK 
    [AbstractRegPopulator]getPopulatorFileIS(): populatorFileName=jposxml.cfg 
    

    그러나 JposEntries 목록은 비어 있습니다. 결과적으로 애플릿은 지불 터미널과 통신 할 수 없습니다.

애플릿은 JNLP 파일 (및 JNLP 확장자를 통해 필요한 모든 jars)을 통해로드됩니다. 두 JNLP 파일의 보안은 모두 < all-permissions/>으로 설정됩니다. 모든 jar는 동일한 인증서로 서명됩니다. 동일한 코드가 Eclipse에서 완벽하게 작동합니다. 문제가 무엇인지에 대한 아이디어가 있습니까?

+0

동일한 문제가 있습니다. joes.properties 파일을로드하려고 시도 할 때 sunrsasign.jar을로드하는 것과 관련이 있지만 jar 파일은 이전 JDK에만 포함되어 있습니다. 왜이 파일을로드하려고하는 모든 아이디어? –

답변

5

이 문제는 비슷한 문제가있는 사람을위한 것입니다.

jpos.properties 파일을 볼 수있는 JavaPOS 코드를 가져올 수 없지만 위에서 설명한대로 시스템 등록 정보에 값을로드하는 것이 효과적이므로 지금 당장이를 사용하겠습니다.

JavaPOS가 URL에서 jpos.xml 또는 jposxml.cfg를로드하게하려면 jpos.config.populatorFileURL이 아니라 jpos.config.populatorFile 속성을 설정해야합니다. 이것은 jpos.properties에서 설정하거나 SystemProperties로 실패 할 수 있습니다.

0

같은 문제가 발생했습니다.

JposServiceLoader는 classpath를 사용하여 경로의 루트를 찾습니다.예를 들어

, 로컬 애플리케이션 클래스 패스 후

C:/myapp/target/classes 

jpos.properties 경로

C:/myapp/target/classes/jpos/res/jpos.properties 

P.S.로되어야이면 어쩌면 jpos 파일을 배치하는 가장 좋은 방법은 아니지만, 적어도이 문제를 해결할 수있는 방법 일 수 있습니다.

관련 문제