小编Til*_*err的帖子

Spring启动时的Log4j.properties

如何在Spring启动中加载Custom Log4j.properties文件

我在application.properties中的代码就在这里

logging.file=E:/Apps_Tek/apps-webservices-log/apps-webservices.log
logging.level.*=INFO
logging.config=log4j.properties
Run Code Online (Sandbox Code Playgroud)

我在log4j.properties中的代码就在这里

log4j.rootLogger=INFO,ConsoleAppender,FileAppender

log4j.appender.ConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.ConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.ConsoleAppender.layout.ConversionPattern=%-7p %d [%t] %c [%X{userName}] [%X{accessToken}] - %m%n

log4j.appender.FileAppender=org.apache.log4j.RollingFileAppender
log4j.appender.FileAppender.File=E:/Apps_Tek/apps-webservices-log/apps-webservices.log
log4j.appender.FileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileAppender.layout.ConversionPattern=%-7p %d [%t] %c [%X{userName}] [%X{accessToken}] - %m%n
Run Code Online (Sandbox Code Playgroud)

但是我没有得到任何预期的输出,即,spring boot没有加载log4j.properties文件.Spring启动有自己的默认日志记录.

log4j.properties文件在 src/main/resources

我的问题是如何将log4j.properties文件与application.properties中的logging.config属性映射,如果它位于src/main/resources中.

请提出所有必要的更改建议.

在此先感谢您的帮助.

log4j spring-boot

19
推荐指数
3
解决办法
6万
查看次数

如何使用MS Exchange服务器发送电子邮件

我正在尝试使用我公司的邮件服务器发送电子邮件.但我得到以下例外

Caused by: com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.1 Client was not authenticated
    at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1388)
    at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:959)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:583)
    at javax.mail.Transport.send0(Transport.java:169)
    at javax.mail.Transport.send(Transport.java:98)
Run Code Online (Sandbox Code Playgroud)

这是我的示例代码,

Properties props = System.getProperties();

// Setup mail server
props.put("mail.smtp.host", "example.server.com");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.port", "25");
// Get session
//Session session = Session.getDefaultInstance(props, null);
Session session = Session.getDefaultInstance(props,
    new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication("username", "password");
        }
    });

// Define message
MimeMessage message = new MimeMessage(session);

// Set the from address
message.setFrom(new InternetAddress(from));

// Set the …
Run Code Online (Sandbox Code Playgroud)

java jakarta-mail

11
推荐指数
2
解决办法
7万
查看次数

PDFBox - 从图像生成PDF的问题

我试图从JPEG,BMP类型的图像生成PDF,但我得到右边的图像的一部分总是被切断.我正在使用一个默认的Windows图片Sunset.jpg.

以下是代码:

    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;

    import javax.imageio.ImageIO;
    import javax.imageio.stream.FileImageInputStream;
    import org.apache.pdfbox.exceptions.COSVisitorException;
    import org.apache.pdfbox.io.RandomAccessFile;
    import org.apache.pdfbox.pdmodel.PDDocument;
    import org.apache.pdfbox.pdmodel.PDPage;
    import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
    import org.apache.pdfbox.pdmodel.graphics.xobject.PDCcitt;
    import org.apache.pdfbox.pdmodel.graphics.xobject.PDJpeg;
    import org.apache.pdfbox.pdmodel.graphics.xobject.PDPixelMap;
    import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage;

    public class ImageToPDF 
    {
        public void createPDFFromImage( String file, String image) throws IOException, COSVisitorException
        {
            PDDocument doc = null;
            try
            {
                doc = new PDDocument();
                PDPage page = new PDPage();
                doc.addPage( page );
                PDXObjectImage ximage = null;
                if( image.toLowerCase().endsWith( ".jpg" ) || image.toLowerCase().endsWith( ".jpeg" ))
                {        
                    BufferedImage awtImage = ImageIO.read( …
Run Code Online (Sandbox Code Playgroud)

java pdfbox

6
推荐指数
2
解决办法
6383
查看次数

用PDFBox标记PDF

是否可以使用PDFBox创建标记PDF(PDF/UA)?看起来PDFBox有一个API(包org.apache.pdfbox.pdmodel.documentinterchange.taggedpdf),但我找不到任何教程或代码示例.

使用下面的代码,我生成了一个包含图像的PDF文件,屏幕阅读器NVDA(在我的例子中)识别它并读取'... graphic Alternate Description'.但是,辅助功能检查器PAC 2显示错误:"图像对象未标记".

        PDDocument doc = new PDDocument();
        PDPage page = new PDPage();
        doc.addPage(page);
        PDDocumentCatalog documentCatalog = doc.getDocumentCatalog();

        PDImageXObject pdImage = PDImageXObject.createFromFile(imagePath, doc);
        PDPageContentStream contents = new PDPageContentStream(doc, page);
        contents.drawImage(pdImage, 100, 600, pdImage.getWidth() / 2, pdImage.getHeight() / 2);
        contents.close();

        PDStructureTreeRoot treeRoot = new PDStructureTreeRoot();
        PDStructureElement structureElement = new PDStructureElement(StandardStructureTypes.Figure, treeRoot);
        structureElement.setPage(page);

        PDMarkedContent markedImg = new PDMarkedContent(COSName.IMAGE, new COSDictionary());
        markedImg.addXObject(pdImage);

        structureElement.appendKid(markedImg);
        structureElement.setAlternateDescription("Alternate Description");
        treeRoot.appendKid(structureElement);
        documentCatalog.setStructureTreeRoot(treeRoot);
        // ....
        doc.save(fileName);
Run Code Online (Sandbox Code Playgroud)

您能否就此主题提供一些解释或/和代码示例?

java accessibility pdfbox tagged-pdf

6
推荐指数
1
解决办法
2177
查看次数

在PDFBox 2.0.4上提取页面到图像时出现"黑色污点"

使用PDFBox 2.0.4将页面提取为图像,我的结果页面包含多个"黑洞",如下面的屏幕所示:

在此输入图像描述

这种情况仅发生在这个PDF和其他几个:http://www.filedropper.com/selection_3

这是一个简单的代码(使用JavaFX)来重现问题(下载PDF后更改文件路径):

public class PDFExtractionTest extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        FileInputStream inputStream = new FileInputStream(new File("C:\\Users\\John\\Desktop\\selection.pdf"));
        PDDocument document = PDDocument.load(inputStream);
        PDFRenderer pdfRenderer = new PDFRenderer(document);
        BufferedImage bufferedImage = pdfRenderer.renderImage(1);
        Image fxImage = SwingFXUtils.toFXImage(bufferedImage, null);

        BorderPane borderPane = new BorderPane();
        ImageView imageView = new ImageView(fxImage);

        borderPane.setCenter(imageView);

        primaryStage.setScene(new Scene(borderPane, 1024, 768));
        primaryStage.show();
    }

     public static void main(String[] args) throws FileNotFoundException {
         launch(args);
     }
}
Run Code Online (Sandbox Code Playgroud)

这是我的依赖项:

  • pdfbox 2.0.4
  • jai-imageio-jpeg2000 1.3.0(防止错误:无法读取JPEG2000图像:Java Advanced Imaging(JAI)未安装图像I/O工具) …

java pdf jpeg2000 pdfbox

6
推荐指数
1
解决办法
734
查看次数

jsf 2.0在GET参数验证失败后返回http错误代码

我有这个本地URL: http:// localhost:8084/Name/faces/Blah.xhtml?flkatid = AAA

这是一个来自facelet的片段,它检查参数"flkatid"并将其分配给bean:

    <f:metadata>
        <f:viewParam name="flkatid"
                     id="flkatid"
                     value="#{floKatBean.flkatid}"
                     required="true"
                     requiredMessage="URL incomplete"
                     validator="#{floKatBean.validateFlKatId}"
                     validatorMessage="URL incomplete or invalid"
                     >
        </f:viewParam>
        <f:event type="preRenderView" listener="#{floKatBean.init}"/>
        <f:event type="preRenderView" listener="#{floBean.holFloListe}"/>
    </f:metadata>
Run Code Online (Sandbox Code Playgroud)

floKatBean.flkatid是一个整数,因此URL无效.将显示一个页面,告诉您:

flkatid:'AAA'必须是由一个或多个数字组成的数字.flkatid:'AAA'必须是-2147483648和2147483647之间的数字示例:9346

JSF检查参数本身,因为它知道bean元素是一个整数.仅当参数是整数时才调用自定义验证器.

是否有可能让服务器返回HTTP错误代码,例如403(禁止)而不离开"标准JSF世界"(或切换到RichFaces,MyFaces,SmileyFaces或其他)?我在f:viewParam中找不到任何"失败"的页面.在其他地方?

jsf facelets

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

Apache FOP使用SimSun显示###

我正在维护一个使用Apache FOP打印PDF文档的程序.有几个关于中文字符出现"####"的投诉.我找到了一个关于这个问题的现有线程,并在我身边做了一些研究.

http://apache-fop.1065347.n5.nabble.com/Chinese-Fonts-td10789.html

我的系统上安装了uming.tff语言文件.与此帖子中的人不同,我仍然得到"####".

从现在开始,有没有人看过一个可以让你使用Apache FOP在PDF文档中打印复杂字符的工作?

瑞安

java apache-fop chinese-locale

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

如何在未排序的数组中找到最接近的double

我在离散空间中有一组点,坐标以N double []数组的形式给出.

如:

点T1 = {1.3,2.5,4-3} ---> double [] x = {1.3},double [] y = {2.5},double [] z = {4.3}

然后我有一个函数,它在连续空间的所有方向上从给定点生成偏移量,我需要在我的矩阵/双数组中找到最接近的匹配.

问题是我无法对这些数组进行排序并应用二进制搜索,因为Point的组件很可能在排序后没有相同的索引.

是否有一些数据结构/算法可以应用于避免迭代搜索最接近的匹配点?

组织点是否更好,以便有一个数组实例描述整个点而不是每个组件的数组?

编辑

看起来理想的解决方案将使用评论中建议的kd树.计算机科学算法不是我的领域,因此在我研究该主题时,用kd树或其他替代方案展示最小例子的答案将是最有帮助的.

java arrays algorithm optimization search

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

PDFBox IO 异常:COSStream 已关闭且无法读取

我在使用 PDFBox 以 Java 编写的一些代码时遇到问题。我正在尝试根据从 Excel 电子表格读取的值使用特定表单填充 PDF。下面是我的班级文件。

import java.io.FileInputStream;
import java.io.File;
import java.io.IOException;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.PDPageContentStream.AppendMode;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.hssf.usermodel.*;

/**
 * This is a test file for reading and populating a PDF with specific forms
 */
public class JU_TestFile {

    PDPage Stick_Form;
    PDPage IKE_Form;
    PDPage BO_Form;

    /**
     * Constructor.
     */
    public JU_TestFile() throws IOException
    {
        this.BO_Form = (PDPage) PDDocument.load(new File("C:\\Users\\saf\\Desktop\\JavaTest\\BO Pole Form.pdf")).getPage(0);
        this.IKE_Form = (PDPage) PDDocument.load(new File("C:\\Users\\saf\\Desktop\\JavaTest\\IKE …
Run Code Online (Sandbox Code Playgroud)

java apache pdfbox

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

使用 PDFBox 将西里尔字符写入 PDF 表单字段

我正在使用 pdfbox 2.0.5 使用以下代码填写 PDF 文档的表单字段:

        doc = PDDocument.load(inputStream);
        PDDocumentCatalog catalog = doc.getDocumentCatalog();
        PDAcroForm form = catalog.getAcroForm();
        for (PDField field : form.getFieldTree()){
            field.setValue("??????");
        }
Run Code Online (Sandbox Code Playgroud)

我收到此错误:U+0434 ('afii10069') 在此字体中不可用 Times-Roman (generic: TimesNewRomanPSMT) encoding: StandardEncoding with Difference

PDF 文档本身包含显示正常的西里尔文文本。我试过使用不同的字体。对于“Arial Unicode MS”,它需要下载一个 50MB 的“Adobe Acrobat Reader DC 字体包”。这是对西里尔字符的要求吗?

我必须在文本字段中指定哪种字体来处理西里尔文(或亚洲)字符?

谢谢,罗波

java pdf fonts acrobat pdfbox

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