小编Stu*_*son的帖子

GCJ(GNU Compiler for Java)是一个发布webapp的可行工具吗?

使用GCJ发布服务器端应用程序是否真的可行?WEBAPPS?

我的老板确信将我的(我的)webapp 编译成二进制可执行文件是个好主意.(然后,他再次喜欢用他能理解的眨眼灯光的漂亮,小巧的简单事物.)他本能地认为没有问题,而我只能看到无穷无尽的一系列问题和退化.一旦我开始与他谈论我们平台的复杂性,以及更深入的字节代码,JVM,库,操作系统之间的差异,处理器架构等......嗯......他的眼睛茫然,他微笑着他已经说清楚他认为我是幼稚的抵抗力.

为什么他想要一个魔法可执行文件?他看到了几个"好处":

  • 如果它是二进制可执行文件,则很难进行逆向工程并绕过任何许可.管理层始终担心这种情况正在发生,即使我们出售给通常不会使用服务器软件作弊的大型企业.
  • 有下载这个神奇的可执行文件,运行它,一切正常的愿景.(不再派我去做客户安装,这不常见.)

所以,我已经完成了必须的20分钟谷歌搜索,现在我在这里.

关于我的应用程序的一些背景知识:

它是由什么组成的:

  • Java 6(Sun的JVM)
  • AspectJ 1.6
  • 雄猫6
  • Hibernate 3
  • 春天2
  • 另外二十几个支持jar文件

它能做什么

  • 流媒体CMS
  • 性能敏感
  • 部署在Linux,Solaris,Windows(以及在Mac上开发)

正如你可能会收集到的那样,我对这种"将Java编译为本机代码"的事情持高度怀疑态度.这听起来像是Mono(Linux上的VB)早在2000年.但我是否过于悲观?它可行吗?我是否应该花时间(几天甚至几周)来试试这个?

还有一个类似的线程(用于生成.exe文件的Java编译器选项),但它有点过于简单,链接过时了,并没有真正面向服务器端问题.

亲爱的SOpedians,您的知情意见将受到高度重视!TIA!

java gcj

13
推荐指数
2
解决办法
2852
查看次数

Hibernate:batch_size?二级缓存?

我有一个Hibernate域对象,由应用程序的不同部分加载.有时延迟加载每个关联和其他关联是有利的,最好在一个连接中加载整个事物.作为一个充满希望的妥协,我发现:

使用批量提取,如果访问一个代理,Hibernate可以加载几个未初始化的代理.批量提取是延迟选择提取策略的优化.

hibernate.default_batch_fetch_size:

使用批量提取,如果访问一个代理,Hibernate可以加载几个未初始化的代理.批量提取是延迟选择提取策略的优化.

我也看到:

hibernate.jdbc.fetch_size:

非零值确定JDBC获取大小(调用Statement.setFetchSize()).

Hibernate是否足够聪明,可以在进行批量提取时查看二级缓存?即,一次获取初始调用关联,然后下一个X调用命中缓存?这样我就可以拥有我想要的延迟加载,但也经常点击缓存以获得更大量的交易.

如果集合的整个内容已经包含在缓存中,它是否仍然会在访问集合时执行获取查询?

谢谢.

hibernate fetching-strategy second-level-cache

13
推荐指数
1
解决办法
2315
查看次数

你如何制作一个与Apache相匹配的etag?

我想制作一个与Apache产生的匹配的etag.apache如何创建它的etags?

apache etag http

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

带有Hibernate的org.hibernate.hql.ast.QuerySyntaxException

我是使用Hibernate和Java的新手.我收到以下异常.我在网上找到关于这个错误的东西似乎没有帮助.有任何想法吗?例外情况:

java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: 

ApplPerfStats is not mapped [select count(c) from ApplPerfStats c]
    at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:601)
    at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:96)
    at com.icesoft.icefaces.samples.datatable.jpa.CustomerDAO.findTotalNumberCustomers(CustomerDAO.java:89)
    at com.icesoft.icefaces.samples.datatable.ui.SessionBean.getDataPage(SessionBean.java:189)
    at com.icesoft.icefaces.samples.datatable.ui.SessionBean.access$0(SessionBean.java:185)
    at com.icesoft.icefaces.samples.datatable.ui.SessionBean$LocalDataModel.fetchPage(SessionBean.java:245)
    at com.icesoft.icefaces.samples.datatable.ui.PagedListDataModel.getPage(PagedListDataModel.java:121)
    at com.icesoft.icefaces.samples.datatable.ui.PagedListDataModel.getRowCount(PagedListDataModel.java:100)
    at com.icesoft.faces.component.datapaginator.DataPaginator.isModelResultSet(DataPaginator.java:1091)
    at com.icesoft.faces.component.datapaginator.DataPaginatorRenderer.encodeBegin(DataPaginatorRenderer.java:201)
Run Code Online (Sandbox Code Playgroud)

这叫做的地方:

@SuppressWarnings("unchecked")
public Long findTotalNumberCustomers() {
    EntityManagerHelper.log("finding number of Customer instances", Level.INFO, null);
    try {
        String queryString = "select count(c) from ApplPerfStats c";
        return (Long) getEntityManager().createQuery(queryString).getSingleResult();
    } catch (RuntimeException re) {
        EntityManagerHelper.log("find number of Appl_perf_stats failed",
                Level.SEVERE, re);
        throw re;
    }
}
Run Code Online (Sandbox Code Playgroud)

映射到数据库表的类:

package com.icesoft.icefaces.samples.datatable.jpa;

import java.sql.Timestamp;

import …
Run Code Online (Sandbox Code Playgroud)

java hibernate

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

在Java中使用Class.getResourceAsStream()的问题

我有点卡在我正在处理的项目中,我想从另一个文件夹中加载文本文件.我正在使用Netbeans,并且出于这个问题的目的,有两个文件夹,一个是我的班级,另一个是资源.

该类在../misc/[ClassName],我想要加载的文本文件../resources/[Name].txt

这听起来简单得令人难以置信,并且已经完成了Java很长一段时间我真的应该知道这一点,我假设加载这个文件而不是仅使用FileReader的最好方法就是使用getResourceAsStream,如图所示:

InputStream is = 
        this.getClass().getClassLoader().getResourceAsStream(_filename + ".txt");
Run Code Online (Sandbox Code Playgroud)

理想情况下节省我的时间,而不必在文件路径中进行硬编码.现在,我的问题是我不断从上面的代码返回null,实际上我可以放在它上面的任何其他排列.我已经尝试过/resource/filename.txtresource/filename.txt作为参数,使用.getClass().getResourceAsStream相反getClassLoader(),一切仍然返回相同的结果.

为了避免任何混淆,我已经检查了文件名及其绝对正确和正确的情况等,所以这不是问题.有任何想法吗?我知道我可以FileReader用来实现同样的目标,但现在它是一种原则!

java

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

Apache Tomcat 404错误

我下载了Apache Tomcat 6.0.2并在Eclipse中创建了一个新服务器

  1. 新 - >服务器
  2. 选择"Tomcat v6.0 Server",然后选择
  3. Tomcat安装目录 - >我在哪里解压缩Apache Tomcat 6.0.2

然后我启动服务器并转到http:// localhost:8080 /以查看它是否有效.我收到404错误.

我已经用Google搜索并试图找到解决方案.但这些补救措施似乎都不起作用.

对问题是什么的任何想法?

java eclipse tomcat

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

-d64交换机对Sun JVM驻留内存使用有何影响?

我有这个需要一些内存调整的webapp.虽然我已经在分析应用程序本身并削减了一些东西,但JVM本身在我们最繁忙的实例上看起来过于臃肿.(较低的卷实例没有此问题.)详细信息:

  • 平台:
    • RHEL4 64位(Linux 2.6.9-78.0.5.ELsmp #1 SMP x86_64)
    • Sun Java 6(Java HotSpot(TM) 64-Bit Server VM (build 10.0-b23, mixed mode))
    • Tomcat 6 -d64startup.sh
  • 我的webapp目前有一些代码,在生产中需要运行64位的好处.
  • 我观察到经过一段时间(一周)后,JVM驻留内存大小(如上图所示)是我-Xmx设置大小的三倍.
  • 非堆内存大小等都是相对微不足道的,只是堆大小的一位数百分比
  • 只有一段代码需要64位的地址空间

如果我可以重构64位JVM的需要,并放弃-d64交换机,那会不会使JVM的常驻内存占用更小?换一种说法...

-d64交换机对Sun JVM驻留内存使用有何影响(如果有)?

java performance 64-bit jvm sun

11
推荐指数
1
解决办法
7501
查看次数

Spring"typemismatch"和必填字段

在Spring Webflow 2.0.x的上下文中......

我处理表单绑定"typemismatches",即尝试将String映射到Integer字段,通过在我的使用中使用以下内容 messages.properties

typeMismatch={0} contains invalid data.
Run Code Online (Sandbox Code Playgroud)

这很好用.

The problem is that if the field that the typeMismatch error occurred on was "required" then I also receive an error for the missing required field, which is logical I guess because the value that was submitted was never bound. ("Required" being defined in a Commons Validation XML file)

So, I dont want to see the "XXX is required field" error message when the field is only missing due to …

java spring-webflow

11
推荐指数
1
解决办法
2926
查看次数

在Android上格式化时间,同时遵循首选项(24小时时钟与上午/下午等等)

我目前正在使用以下代码在Google Android上格式化时间:

DateFormat.getDateTimeInstance().format(millis)
Run Code Online (Sandbox Code Playgroud)

虽然此代码遵循我的时区和区域设置,但它会忽略系统首选项中的"24小时模式"设置,始终在AM/PM返回时间.有没有办法以与状态栏上相同的格式获得时间?

time android date-format

10
推荐指数
1
解决办法
8226
查看次数

在运行的JVM上执行jstack是多么"昂贵"?

我正在考虑制作一个剧本

  1. 每分钟运行一次(或每五分钟运行一次)
  2. 对生产中正在运行的JVM运行jstack
  3. 解析jstack输出并计算我感兴趣的东西
  4. 通过另一台服务器上的集中式Cacti安装导出24/365图表的结果

但我不知道在运行的JVM上有多昂贵或侵入性的jstack.在正在运行的JVM上执行jstack有多贵?我是否为一个受伤的世界做好准备?

java jstack

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