小编Att*_*cus的帖子

以Pdf附件的形式发送电子邮件作为流

我想发送一个Pdf作为电子邮件附件(我正在使用JavaMail API).我有一个Pdf(由jasper生成)作为byte[].

public InputStream exportPdfToInputStream(User user) throws ParseErrorException, MethodInvocationException, ResourceNotFoundException, JRException, IOException{
        JasperPrint jasperPrint = createJasperPrintObject(user);
        byte[] pdfByteArray = JasperExportManager.exportReportToPdf(jasperPrint);
        return new ByteArrayInputStream(pdfByteArray);
    }
Run Code Online (Sandbox Code Playgroud)

这是我用来构建MimeBodyPart附件的代码:

    if (arrayInputStream != null && arrayInputStream instanceof ByteArrayInputStream) {
        MimeBodyPart attachment = new MimeBodyPart(arrayInputStream);
        attachment.setHeader("Content-Type", "application/pdf");
        mimeMultipart.addBodyPart(attachment);
    }
Run Code Online (Sandbox Code Playgroud)

这段代码给了我这个错误:

javax.mail.MessagingException: IOException while sending message;
  nested exception is:
    java.io.IOException: Error in encoded stream: needed at least 2 valid base64 characters, but only got 1 before padding character (=), the 10 most recent …
Run Code Online (Sandbox Code Playgroud)

java email jakarta-mail mime-types

10
推荐指数
2
解决办法
3万
查看次数

设置流回浏览器的Pdf的文件名

我有一个Java webapp创建一个pdf并将其流回浏览器.

 byte[] pdf = report.exportPdfToArray(user);
response.setContentType("application/pdf");
response.setHeader("content-disposition", "inline; filename=\"My.pdf\"");
outStream = response.getOutputStream();
outStream.write(pdf);
outStream.flush();
outStream.close();
Run Code Online (Sandbox Code Playgroud)

报告被执行并被发送回浏览器,但即使我设置了,我也无法控制文件的名称content-disposition.我正在使用Jboss 4.2.1.你知道我错过了什么吗?

编辑:当内容处置是内联时,有没有办法设置文件名?

java pdf iostream servlets httpresponse

8
推荐指数
2
解决办法
3万
查看次数

使用Hibernate以块的形式读/写blob数据

有没有办法从blob块中读取和写入使用Hibernate.现在我得到了OutOfmemoryException因为整个blob数据被加载到内存中byte[].

更具体地说,假设我想将一个大文件保存到一个名为的数据库表中File.

public class File {
   private byte[] data;
}
Run Code Online (Sandbox Code Playgroud)

我在FileInputStream中打开文件然后呢?我如何告诉Hibernate我需要流式传输内容并且不会立即提供整个byte[]数组?我应该用Blob而不是byte[]吗?无论如何我如何流式传输内容?

关于读书,有没有办法,我可以告诉Hibernate是(除了延迟加载它)我需要大块要加载的斑点,所以当我取回我File不应该给我OutOfMemoryException.

我在用:

  • Oracle 11.2.0.3.0
  • Hibernate 4.2.3 Final
  • Oracle Driver 11.2

java oracle hibernate blob stream

8
推荐指数
1
解决办法
1万
查看次数

jqGrid:如何隐藏搜索工具栏中的特定搜索字段

我正在使用jqGrid和搜索工具栏.现在有几列我不需要搜索字段,因为我不想让它们可搜索(即一列复选框).对于这些列,我想隐藏搜索工具栏中的搜索字段.我在jqGrid 文档中已经读过该viewable选项可以设置为false.这是我设置viewable选项的部分:

colModel :[ 
          {name:'checkbox', index:'checkbox', width:'3%', viewable:false},
Run Code Online (Sandbox Code Playgroud)

以下是我创建搜索工具栏的方法:

jQuery(function(){
    jQuery("#listTable").jqGrid('filterToolbar',{stringResult: true, searchOnEnter: false});
});
Run Code Online (Sandbox Code Playgroud)

根据文档,该viewable选项仅在viewGridRow激活方法时有效.

但是当我使用(激活)viewGridRow方法时,会创建另一个对话框.在该对话框viewable中,未显示设置为false 的列.但我想在搜索工具栏中隐藏搜索字段而不是在新对话框中.我怎样才能做到这一点?

我也试图得到相应的div(围绕我的搜索字段的那个)并将其设置style.displaynone.但这没有用.

有没有办法在搜索工具栏中隐藏此搜索字段?

javascript css jqgrid

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

验证方案所需的设计解决方案

我想验证一些对象.验证有两部分:

  • 验证用户是否有权访问该对象(特定权限已经计算并存储在布尔值中,最多有4个角色)
  • 检查对象是否处于某种状态(来自一组状态)

我有很多规则(实际上总共大约25个),比如下面那些需要验证的规则:

  • isOwner &&(status == 11 || status == 13 || status == 14)
  • !(isOwner && isReceiver && status == 12)
  • .....

我将这些规则分为几种方法,一种方法中的4或5条规则.如果规则失败,则不会检查其他规则.我需要在每个使用此验证的方法中构造一个验证器(或设置一个已构造的验证器).

我正在寻找一种设计模式,可以更容易地构建一个结构来验证对象.我的目标是能够提供特定的错误消息.例如,如果验证失败,因为用户没有权限,那么我想让他/她知道这一点.如果由于对象的状态而失败,那么我想显示它.

首先我虽然是装饰模式.我有一个错误消息处理程序对象,可以使用特定的错误消息进行修饰.一个装饰器将检查用户权限,另一个装饰器用于状态.但是我构建验证器对象的顺序无关紧要,因此不使用装饰器模式的功能.(AFAIK这是使用装饰器的一大优势 - 混合装饰).我认为链条可能更适合这种情况......?!?!您会为此方案推荐哪种设计方案?

architecture validation design-patterns

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

抽象类'受保护方法的Spring切入点

我正在使用Spring 3.2AspectJ 1.7.1.(我不太可能在不久的将来升级到更高版本.)

我需要为抽象类中的受保护方法定义切入点.AFAIK我需要AspectJ非公开的方法,所以我只用(AspectJ)注释尝试了这个:

package com.aspects;
@Aspect
public class Aspect{

    @Before("execution(* com.x.y.x.MyClass.myMethod(..))")
    public void beforeAspect(){
       //do something here
    }

}
Run Code Online (Sandbox Code Playgroud)

在我的beans.xml身上:

<aop:aspectj-autoproxy />
<bean id="myAspect" class="com.aspects.Aspect"/>
Run Code Online (Sandbox Code Playgroud)

我已经检查并且我的Aspect类被创建(构造函数被调用),启动应用程序时不会抛出任何异常.但是我无法得到它beforeAspect.对于非抽象类中的公共方法,这是有效的.如何使它适用于抽象类中的受保护方法?

java spring aspectj spring-aop

3
推荐指数
1
解决办法
6635
查看次数

Java DecimalFormat问题

我想在Java中使用德语语言环境格式化double类型的数字.但是出现问题,因为以下代码的输出是:0.0

package main;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;

public class Test {

    private static String decimal2Format = "000.000"; 

    public static void main(String args[]){
        DecimalFormat format = (DecimalFormat)NumberFormat.getInstance(new Locale("de"));
        double value = 0;
        try {
            format.applyPattern(decimal2Format);
            value = format.parse("0.459").doubleValue();
        } catch (ParseException e) {
            e.printStackTrace();
        }

        System.out.println(value);
    }

}
Run Code Online (Sandbox Code Playgroud)

你有什么想法有什么不对吗?

谢谢,阁楼

java locale decimal

2
推荐指数
1
解决办法
1814
查看次数

使用JasperReports修复了Excel中的标题

如何使用JapserReports创建带有固定标头的Excel报告?我的意思是当我滚动Excel文件时,我需要修复标题.

jasper-reports export-to-excel

2
推荐指数
1
解决办法
7277
查看次数

Eclipse中无法识别的特殊字符

我在Eclipse(Indigo Service Release 1)中遇到了编码问题.这是发生的事情:

我有一个德语的属性文件(语言包),当我打开它时,它没有正确显示Eclipse.例如:gelöscht显示为gel?scht.我曾试图改变文件关联Text Editor,Properties File Editor,JBoss Tools Properties Editor但它是这个样子在所有情况下.

有趣的是,当我打开文件时,Notepad++它正确显示.在Eclipse,文本文件编码设置为UTF-8,文件的编码(根据Notepad++)是ANSI.

还有其他的设置我不知道吗?如何修复此问题以查看正确的编码Eclipse

java eclipse encoding resourcebundle

2
推荐指数
1
解决办法
9041
查看次数