小编Ran*_*dom的帖子

是否有生成POM.xml文件的Java类?

在我的工作项目中,我最近被要求通过java类生成POM文件.问题是我对Maven非常非常新(就像去年12月一样).

我需要的是一个莫名其妙的代码生成一个XML文件(POM文件,但如果我可以配置任何XML创建代码,将被罚款)给所有necesary数据,所以他们并不需要手工编写它.我不知道我是否在解释自己,但问题是,是否有任何库或类生成或构造具有给定数据的POM文件?如果不是,这只是罚款,我只是不想失去更多的时间寻找的东西,我不知道如果它存在的话,如果是声明POM对象,然后做一个简单的文档d简单= generatePom(POM p).因为没有人抱怨写POM文件有多难,所以我应该有一个简单的方法来做它们但我想我已经迷失了很多API javadoc并且我找不到回来的路.

如果对此没有代码我的想法是搜索POM词典(覆盖所有元素),并创建一个给定的POM对象的XML文件(我以前充满了我提供的数据),其使用XML生成例如JDOM,XOM或XStream.如果没有已经完成此课程的课程(例如'嘿!你做错了'),任何对此的想法都会受到赞赏.

PS:我已经读过Eclipse项目正在做一些Maven的事情,并且有一个API为你拥有的实际项目生成一个pom.xml文件.如果我可以覆盖输入数据或其他东西,这将是一件好事.

谢谢大家!

java pom.xml maven

18
推荐指数
1
解决办法
8149
查看次数

使用JasperReports和相对路径

我有一个网络应用程序,客户端已要求查看一些报告.方法是使用iReport并在屏幕上显示报告.

我已经问了这样的事情.但今天我发现报告文件(jrxml)的路径是绝对的.所以我必须更改程序,以便它接受相对路径.我一直在尝试这样做,但似乎jrxml或编译(.jasper)文件都不接受既不编译也不填充报告的相对路径.

这是我迄今为止所得到的:

//path is generated as request.getContextPath() + "/jrxmlFiles/"
public void generateReport(HttpServletResponse res, ConexionAdmin con, String path) throws Exception{ 

    ServletOutputStream out = null;
    ByteArrayOutputStream bos    = new ByteArrayOutputStream();

    JasperDesign jasperDesign = JRXmlLoader.load(path);
    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

  byte[] bytes = JasperRunManager.runReportToPdf(jasperReport, pars, con.initConexion());
        res.setContentType("application/pdf");
  res.setContentLength(bytes.length);
  out = res.getOutputStream();
  out.write(bytes, 0, bytes.length);

  res.setHeader("Cache-Control", "cache");
  res.setHeader("Content-Disposition", "attachment; filename=report.pdf"); 
  res.setHeader("Pragma", "cache");
  res.setContentLength(bos.size());

  out.write(bos.toByteArray());
  out.flush();
  bos.close();
  out.close(); 
  res.flushBuffer();
}
Run Code Online (Sandbox Code Playgroud)

这似乎适用于绝对路径,但抛出我:

Exception Message
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException
Run Code Online (Sandbox Code Playgroud)

当改为相对路径时.我在网上搜索没有成功如何改变我的适合度.

我有jasper API的javaDoc,但如果我能帮助它,我宁愿不读它.

java jasper-reports

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

依赖项中可能的分类器和类型的列表

我在网上搜索了可以放在dependency标记内的scope标记中的所有可能值,但是我没有找到任何列表,其中包含classiffier和类型的相同数据.

有谁知道我能做什么,不能放在这个标签里面?

为了清楚起见,我不是问分类器标签或类型标签做了什么,我只想要一个这个标签接受的数据列表或者我在哪里可以找到它.

谢谢!

dependencies maven-2 classification

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

使用PrintWriter和OutputStream

我正在用struts创建一个项目,我在使用Jasper IReports时遇到了问题.我想将一些信息导出到pdf文件中并且我一直得到java.lang.IllegalStateException:getOutputStream()已被调用...由于在页面已打开PrintWriter时在我的代码中打开ServletOutputStream而导致异常.

代码在模型中(因此它不在jsp中,它在java文件中),如下所示:

    public void handle(HttpServletResponse res, Connection connection, String path)throws Exception{
    ServletOutputStream out = null;
    try {

        JasperDesign jasperDesign = JRXmlLoader.load(path);
        JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
        byte[] bytes = JasperRunManager.runReportToPdf(jasperReport, null, connection);
        res.setContentType("application/pdf");
        res.setContentLength(bytes.length);
        out = res.getOutputStream();
        out.write(bytes, 0, bytes.length);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        out.flush();
        out.close();
    }
Run Code Online (Sandbox Code Playgroud)

我检查了连接,路径和HttpServletResponse,都运行正常.

我是Jasper Reports的新手以及编写PDF格式的东西,所以你可以 - 正确地 - 我对我在这里做的事情有一点了解,显然我的代码是通过网络从某处复制/粘贴的.

我曾尝试使用PrintWriter而不是OutputStream,将字节转换为String并使用PrintWriter.append(String)方法(allthought不是String是CharSequence),但它不会将数据提取到PDF中.

我也尝试获取PrintWriter,关闭它以打开OutputStream(不起作用)或刷新它(两者都没有).

任何帮助解决方案使用任何可以显示pdf数据的解决方案都会很棒.非常感谢!

java servlets outputstream printwriter

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

Java Comparator给出要比较的属性的名称

我的问题是这个; 我必须订购一张数据表.表的每一行都是存储在List中的对象(让我们称之为TableObject).每列数据都是类的属性(通常是String).

当用户点击任何列时,我必须进行典型的数据排序.所以我考虑将List更改为TreeSet并在TableObject中实现Comparator.

当我尝试重新排序TreeSet时出现问题.这个比较起初相当容易(为了省略parseInt中的异常):

   public int compare(TableObject to1, TableObject to2){
        TableObject t1 = to1;
        TableObject t2 = to2;

        int result = 1;

        if(Integer.parseInt(t1.getId()) == Integer.parseInt(t2.getId())){result=0;}
        if(Integer.parseInt(t1.getId()) < Integer.parseInt(t2.getId())){result=-1;}

        return result;

    }
Run Code Online (Sandbox Code Playgroud)

但是,当我不得不通过数据文本或TableObject所具有的其他数十个数据重新排序时,我遇到了问题.我不想创建几十个比较函数,每个函数对应一个.我不想使用开关(或ifs链)来决定如何比较对象.

有没有办法以某种方式做到这一点(比如Reflexive),这并不意味着我会写出数百行几乎相同的代码?

谢谢大家!

java compare

4
推荐指数
1
解决办法
4080
查看次数

当 Flux 为空时返回 404

当 Flux 为空时,我试图返回 404,类似于此处:WebFlux 功能:如何检测空 Flux 并返回 404?

我主要担心的是,当您检查通量是否包含元素时,它会发出该值,而您会丢失它。当我尝试在服务器响应上使用 switch if empty 时,它永远不会被调用(我偷偷认为这是因为 Mono 不是空的,只有主体是空的)。

我正在做的一些代码(我的路由器类上有一个过滤器,检查 DataNotFoundException 以返回 notFound):

Flux<Location> response = this.locationService.searchLocations(searchFields, pageToken);
return ok()
        .contentType(APPLICATION_STREAM_JSON)
        .body(response, Location.class)
        .switchIfEmpty(Mono.error(new DataNotFoundException("The data you seek is not here.")));
Run Code Online (Sandbox Code Playgroud)

^这从不调用 switchIfEmpty

Flux<Location> response = this.locationService.searchLocations(searchFields, pageToken);

return response.hasElements().flatMap(l ->{
   if(l){
       return ok()
               .contentType(APPLICATION_STREAM_JSON)
               .body(response, Location.class);
   } 
   else{
       return Mono.error(new DataNotFoundException("The data you seek is not here."));
   }
});
Run Code Online (Sandbox Code Playgroud)

^这会丢失 hasElements 上的发射元素。

有没有办法在 hasElements 中恢复发出的元素,或者让 switchIfEmpty 只检查主体的内容?

project-reactor spring-webflux

4
推荐指数
2
解决办法
4838
查看次数

使用 RouterFunction 处理 WebFlux 中的错误

我无法让我的反应式代码以一种常见的方式处理错误。理想的方式是在可重用组件中,我可以将其添加为其他项目的依赖项。

过去,我们@RestControllerAdvise通过个性化的@ExceptionHandler功能来处理它们。作为参考,我的代码:

@Configuration
public class VesselRouter {

    @Bean
    public RouterFunction<ServerResponse> route(VesselHandler handler) {
        return RouterFunctions.route(GET("/vessels/{imoNumber}").and(accept(APPLICATION_JSON)), handler::getVesselByImo)
                .andRoute(GET("/vessels").and(accept(APPLICATION_JSON)), handler::getVessels);
    }
}
Run Code Online (Sandbox Code Playgroud)

此外,处理程序类:

@Component
@AllArgsConstructor
public class VesselHandler {
    private VesselsService vesselsService;

    public Mono<ServerResponse> getVesselByImo(ServerRequest request) {
        String imoNumber = request.pathVariable("imoNumber");
        Mono<VesselResponse> response = this.vesselsService.getByImoNumber(imoNumber);
        return response.hasElement().flatMap(vessel -> {
                if (vessel) {
                    return ServerResponse.ok()
                            .contentType(APPLICATION_JSON)
                            .body(response, VesselResponse.class);
                } else {
                    throw new DataNotFoundException("The data you seek is not here.");
                }
            }
        );

    }

    public Mono<ServerResponse> getVessels(ServerRequest request) { …
Run Code Online (Sandbox Code Playgroud)

spring-webflux

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

JavaScript SRC路径无法正常工作

我搜索过这个网页寻找答案,但似乎这次我没那么幸运,所以我不得不问.如果它已经回答(找不到它),我道歉.是的,英语不是我的第一语言,所以我也为我的拼写错误道歉,我尽我所能.

这是我的问题,使用Tomcat 5.5,Struts 1.3,JRE 1.5,我使用的是Firefox 3.5.6.在我的jsp页面,我似乎无法把任何src="path/path"我在<script>我试图删除src和一切运作良好,但我的项目将需要大量的从jQuery的使用,我不想要复制/粘贴所有js文件中每个jsp.

这是我的代码:

<script type="text/javascript" src="js/jquery-1.3.2.js">
    function showMySelf(){
        alert("Hello World!");      
    }
(... plus other stuff code that actually uses jquery functions)
</script>
Run Code Online (Sandbox Code Playgroud)

和提交按钮:

<input type="submit" onclick="showMySelf()">
Run Code Online (Sandbox Code Playgroud)

当我单击按钮时,没有任何反应(实际上它重新绘制了页面),当我从脚本中删除"src"标签并将所有jquery代码添加到页面时,一切正常.

我已经尝试在路径中添加另一个斜杠"/js/jquery-1.3.2.js"并返回错误.

我尝试过使用ResolveURL,它似乎没有给我更好的结果.

我也尝试将js文件更改为另一个文件("generics.js"和"js.js"),我也试过"js/*.js".

任何一种解决方案都存档了.

我也尝试过使用struts标签(比如html:submit),但它也没有用.

路径实际上是正确的,因为在我的Web浏览器中查找代码会给我一个指向js文件的链接.所以我认为浏览器知道要查找我的js文件,它不会给我一个错误或链接到该文件.

有关为什么会发生这种情况的任何想法?

谢谢你们.

随机.

javascript jquery path src

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

将WAR转换为EAR和其他Glassfish故事

我真的很新,所以我希望不要犯任何可怕的错误.如果我有,我会事先道歉.

在我的项目中,我使用tomcat并部署WAR文件.但现在有些老板想要部署EAR文件.我们去了.

我首先下载了Glassfish(不知道它是否适用于像我这样的新手的应用程序服务器),并且所有(我甚至在autodeploy中部署了hello.war> _ <).然后准备了一个EAR文件.

据我所知,我只需要在Eclipse中创建一个企业应用程序项目,并将我的war文件添加到模块中.这会自动更改application.xml文件(感谢eclipse项目!).所以我将它导出到EAR文件并将其上传到glassfish服务器.

神奇的奇迹,它不起作用.

我也尝试在这个新的闪亮glassfish中部署旧的WAR文件,但是它发现了http-404 not found错误.glassfish似乎说我的项目不在〜/ domains/domain1/docroot中.顺便说一句,我正在使用Windows,我知道glassfish和windows之间的一些问题,因为一些更新打开文件等.

所以我有疑问:首先,我是否正确地进行了EAR包装?其次,我是否需要对glassfish服务器进行一些特殊配置来部署EAR和WAR文件?

谢谢!

java web-services glassfish

0
推荐指数
1
解决办法
5763
查看次数