2013-05-31 4 views
0

xsl fop 번역 중에 바코드 (Code128)를 생성하고 싶습니다. apache fop 문서 (및 barcode4j 문서)에서 확장 기능을 사용하려면 classpath에 넣으십시오. 이것은 일식에서 실행되는 데스크탑 응용 프로그램 및 애플릿에 대해 잘 작동합니다. 그러나 브라우저에서 실행하는 방법은 무엇입니까?Java 애플릿의 확장 기능 (f.e. barcode4j)과 함께 apache fop을 사용하는 방법

개념의 증거로서, 나는 '뚱뚱한 병'이라고 불리는 모든 것을 추출했다. 하나의 항아리. "생성 된 JAR로 추출 된 libs를 추출하여"실행 가능한 항아리로 내보내기 "로 일식에서 재 포장 된 모든 것들. 모든 것은 바코드 생성을 제외하고 예상대로 작동합니다 (번역 및 기타 많은 것들). 이것은 나의 유일한 아파치 extension 확장입니다. 그래서 문제는 애플릿을위한 그런 것이 없으므로 언급 된 classpath에 관한 것입니까? 43 : 04,429 WARN

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="1.0+" codebase="" href=""> 
<information> 
    <title>Sign Applet</title> 
    <vendor>me</vendor> 
</information> 
<security><all-permissions/></security> 
<resources> 
    <j2se version="1.6+" 
      href="http://java.sun.com/products/autodl/j2se"/> 
    <jar href="SignApplet.jar" main="true" /> 
</resources> 
<applet-desc 
    name="Sign Applet" 
    main-class="com.signapplet.SignApplet" 
    width="300" 
    height="300" > 
</applet-desc> 
<update check="background"/> 
</jnlp> 

가 나는 ("19 표준 횡설수설이 자바 콘솔이 추가됩니다 :

<html lang="en-US"> 
    <body> 
    <script src="http://www.java.com/js/deployJava.js"></script> 
    <script> var attributes = { codebase:'.', code:'com.signapplet.SignApplet.class', archive:'SignApplet.jar', width:1024, height:968}; 
      var parameters = {jnlp_href: 'SignApplet.jnlp'} ; 
      deployJava.runApplet(attributes, parameters, '1.6'); 
    </script> 
    </body> 
</html> 

및 JNLP : 여기

내 주요 html로의 일부입니다 FOUserAgent : 97 - 알 수없는 서식 지정 개체 "{http://barcode4j.krysalis.org/ns} 높이"에 "code128의 자식이 있습니다."(문맥 정보가 없습니다) ")
올바른 바코드 4J 확장자를 포함하지 않았지만 모든 내용이 올바르게 포장되어 있습니다. jar 파일 플러스 모든 일식 올바르게 작동합니다.

<fo:block> 
    <fo:instream-foreign-object> 
    <barcode:barcode 
      xmlns:barcode="http://barcode4j.krysalis.org/ns" 
      message="my message" orientation="90"> 
     <barcode:code128> 
     <barcode:height>8mm</barcode:height> 
     </barcode:code128> 
    </barcode:barcode> 
    </fo:instream-foreign-object> 
</fo:block> 

나는 최신 barcode4j-맵시 꾼-EXT-complete.jar와 아파치 FOP 1.1을 사용하고 있습니다 :

이것은 barcode4j 웹 페이지에서 복사/붙여 넣기 예제 코드입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

0

"fat-jar"를 만들면주의하지 않으면 중복 파일을 잃을 위험이 있습니다. FOP 확장은 JAR Service Provider Mechanism (META-INF/services 접근법)에 의해 발견됩니다. 즉, META-INF/services의 파일을 덮어 쓰지 않고 결합해야합니다.

+0

고마워요! 그것은 아마도 이유였습니다. 나는 barcode4j 확장의 분리 된 항아리를 사용했으며 모든 것이 올바르게 작동합니다. 나는 항상 끝에있는 일식에 의해 나열된 재정의 된 파일 목록을 확인하지만 일식이 META-INF/services를 잊어 버린 것처럼 보입니다. –