小编odo*_*oko的帖子

配置 Batik 以使用自定义字体

我在配置 Batik PDFTranscoder 以进行 Svg 到 Pdf 转换时遇到问题。我想将自定义 truetype 字体嵌入到 PDF 输出中,因此我使用 Batik 转码器。我在 fop 配置文件中提供字体配置,如下所述: https: //xmlgraphics.apache.org/fop/2.2/fonts.html

我尝试使用 org.apache.xmlgraphics.Fop 版本 2.1 和 2.2 进行转换。没有任何成功。

我的 pdf 输出带有“Times New Roman”字体,而不是带有嵌入字体“Arial”,因为它应该基于以下示例:

我的配置文件:

 <?xml version="1.0" encoding="UTF-8"?>
 <fop version="1.0">
  <renderers>
   <renderer mime="application/pdf">
     <fonts>
        <directory>C:/path/to/fontsfolder</directory>   
        <auto-detect/>
     </fonts>
   </renderer>
  </renderers>
 </fop>
Run Code Online (Sandbox Code Playgroud)

这是我的转码器代码:

 import org.apache.batik.transcoder.*;
 import org.apache.fop.svg.PDFTranscoder; 
 import org.w3c.dom.Document;


 PDFTranscoder transcoder = new PDFTranscoder();

 try {
   DefaultConfigurationBuilder cfgBuilder = new DefaultConfigurationBuilder();
   Configuration cfg = cfgBuilder.buildFromFile(new File("path-to-xml-config-file"));
   ContainerUtil.configure(transcoder, cfg);
 } catch (Exception e) {
   throw new TranscoderException(e); …
Run Code Online (Sandbox Code Playgroud)

java svg truetype batik apache-fop

7
推荐指数
1
解决办法
2739
查看次数

GlassFish应用服务器中的多实例应用程序体系结构和部署

我需要为每个GlassFish服务器(v 3.1)的大约100个客户设置一个托管环境.每个客户都需要可以彼此独立运行的自定义配置应用程序.(JDBC,JMS,可能性重新启动单一的应用程序)运行一个虚拟机将是优选的,因为发射100级的JVM的RAM中的每个使用750MB不会听起来像一个好主意.

到目前为止,我已经测试了以下解决方案,但不幸的是,这些都没有满足我的要求:

  1. 在单独的域上部署应用程序.由于JVM Ram的使用以及在多个端口上运行多个管理控制台的复杂性,这个解决方案是不够的(我们不需要那么多的分离)

  2. 在同一域上的多个实例(Glassfish上的命名目标)上部署应用程序.此解决方案不足,因为它为每个实例创建单独的JVM进程并消耗太多RAM(每个实例几百MB).否则它最接近我们需要的.

  3. 在同一实例上的多个虚拟主机上部署应用程序.此解决方案是不可接受的,因为在Glassfish中,每个虚拟服务器都没有单独的配置.

任何人都可以建议使用GlassFish托管多个应用程序实例的最佳做法/建议是什么?我们是否注定要为每位客户预留1GB内存?来自IIS环境,我们有单独的应用程序池,每个启动时使用3-5MB的RAM.


UPDATE

关于我的依赖和在我的应用程序中共享:在我想在Glassfisf服务器上实现的想法中,每个应用程序都需要单独的资源(JMS和JDBC).这不是问题,即使每个虚拟主机在一个实例上启用,我也可以为每个应用程序自定义它(我可以通过从Http Request获取服务器名称来识别虚拟服务器,并在实例目录中准备单独的资源和配置文件以将配置应用于此特定虚拟服务器).

我的"独立性要求"是:

  1. 我只需要能够在一个Glassfish实例上部署多个应用程序,并且能够在单独的Java进程中运行它们,但是在同一个Java虚拟机下运行它们.
  2. 我需要能够彼此独立地启动/停止每个应用程序.
  3. 我需要能够重新加载一个应用程序而另一个应用程序应该保持活动状态(在IIS下,此选项称为"回收应用程序池").
  4. 如果一个应用程序中存在错误,则不应影响同一服务器/实例上的其他客户应用程序.其他应用程序仍然有效(当然这个bug不会破坏整个java vm).

这个想法是否可以在一个Glassfish实例上实现,部署了100个应用程序(在实例/虚拟主机上启用)?也许在我的情况下,以不同的名称部署应用程序(如此处所述:home.java.net/node/676678)可能是一个很好的解决方案?有没有人有过使用不同配置部署相同应用程序一百倍的经验?

谢谢,

Olgierd

deployment hosting multiple-instances java-ee glassfish-3

5
推荐指数
1
解决办法
1363
查看次数