小编Rob*_*anu的帖子

OSGi的收支平衡点

OSGi似乎是一个热门的术语.引用了许多好处:

  • 降低复杂性
  • 重用
  • 易于部署
  • 版本

(等等)

我要求一个非常具体的用例 - 中小型Web应用程序.OSGi会为这些带来什么好处?它真的值得吗?

java osgi

5
推荐指数
2
解决办法
1263
查看次数

自定义Eclipse包

我想打包Eclipse +一些自定义插件,供内部使用.

包将包含

  • Platform Runtime Binary(win32和linux x86 gtk);
  • Mylyn任务列表;
  • Mylyn聚焦用户界面;
  • Mantis连接器为Mylyn.

我该如何制作这些自定义版本?

eclipse

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

萎缩的幸存者空间导致持续完整的GC

我使用Tomcat服务器遇到了这种令人不安的经历:

  • 我们的哈德森服务器;
  • 我们的Web应用程序的暂存版本,每天重新部署5-8次.

问题是我们最终会继续进行垃圾收集,但老一代人却无法填补.我注意到幸存者空间旁边是不存在的,垃圾收集器输出类似于:

[GC 103688K->103688K(3140544K), 0.0226020 secs]
[Full GC 103688K->103677K(3140544K), 1.7742510 secs]
[GC 103677K->103677K(3140544K), 0.0228900 secs]
[Full GC 103677K->103677K(3140544K), 1.7771920 secs]
[GC 103677K->103677K(3143040K), 0.0216210 secs]
[Full GC 103677K->103677K(3143040K), 1.7717220 secs]
[GC 103679K->103677K(3143040K), 0.0219180 secs]
[Full GC 103677K->103677K(3143040K), 1.7685010 secs]
[GC 103677K->103677K(3145408K), 0.0189870 secs]
[Full GC 103677K->103676K(3145408K), 1.7735280 secs]
Run Code Online (Sandbox Code Playgroud)

重启Tomcat之前的堆信息是:

Attaching to process ID 10171, please wait...
Debugger attached successfully.              
Server compiler detected.                    
JVM version is 14.1-b02                      

using thread-local object allocation.
Parallel GC with 8 thread(s)         

Heap Configuration: …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection jvm

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

删除java中对System.out的访问权限

我维护一个应用程序,它充当多个单独程序的容器.这些程序有自己的专用日志记录工具,即他们记录的所有内容都对特殊的日志文件.

尽管如此,应用程序开发人员似乎总是喜欢抛出System.out.printlne.printStackTrace调用,因此在运行容器时无法维护干净的控制台.

我怎样才能防止污染这些应用程序System.outSystem.err


实施说明:

  • 应用程序使用Log4j进行日志记录;
  • 容器也使用控制台进行日志记录,但它严格保留用于生命周期事件和问题,所以我仍然需要控制台;
  • 使用自定义类加载器加载应用程序,但不应用安全检查.

更新:

简单地重定向System.out不起作用,因为它重定向所有输出,所以这样的事情失败:

    System.setOut(new PrintStream(new OutputStream() {

        @Override
        public void write(int b) {

            throw new Error("Not on my watch you don't");

        }
    }));

    Logger logger = Logger.getLogger(Runner.class);
    logger.info("My log message");
Run Code Online (Sandbox Code Playgroud)

这应该成功.

更新2:

使用类似的代码加载和配置应用程序

App app = new UrlClassLoader(...).loadClass(className)).newInstance();
app.setLogger(loggerForClass(app));
Run Code Online (Sandbox Code Playgroud)

Log4j从系统类加载器加载.

java logging log4j

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

SQL查询,限制来自一个表的行,而不是结果集

我正在运行一个带连接的简单查询,类似于

SELECT t1.a, t2.b FROM t1 LEFT JOIN t2 ON ... LIMIT 5
Run Code Online (Sandbox Code Playgroud)

由于(任何数字大于2)中t1有多行,t2LIMIT语句不返回前5行t1和相应的条目t2,而是5行,通常包括2-3行t1.

如何编写此查询以获取前5行t1和相应的条目t2


使用MySQL 5.0.45.

mysql sql join limit

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

我可以将单个文本文件打包为maven仓库中的文本文件吗?

我有一个配置文件,我想在maven pom.xml中包含它作为依赖项.我想保留它的几个版本,并让它出现在类路径中.我意识到我可以将它包装在一个罐子里,但我团队中的其他人想要轻松检查它的内容.看看pom.xml中允许的类型,我只看到像pom,jar,war,ear等的东西......基本上只是某种档案.所以我想知道打包单个文件的pom.xml是什么样的.我会在检查服务器时对maven工件进行成像

myconfig-0.0.1.cfg
myconfig-0.0.1.cfg.md5
myconfig-0.0.1.cfg.sha1
myconfig-0.0.1.pom
myconfig-0.0.1.pom.md5
myconfig-0.0.1.pom.sha1
Run Code Online (Sandbox Code Playgroud)

这可能吗?pom.xml会是什么样子?

maven-2 maven-plugin

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

在Google App Engine/Java中实现通配符搜索

我正在尝试跨多个实体实现一个基本的"搜索"系统.我知道GQL中没有类似的运营商支持,但这留下了在我的实体中执行搜索的高效,直接方式的问题.

在Google App Engine/Java中执行此类搜索的惯用方法是什么?

java google-app-engine

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

替换Oracle软件包的一部分

我需要从包中修改一个过程.我需要触及声明和实现.由于我正在为每次修改维护补丁文件,我希望这些更改最小化.

我是否可以仅使用更改的过程更新软件包(如果是,如何?),还是需要提供完整的软件包定义和实现?

oracle plsql stored-procedures

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

DRY定义jetty依赖关系的方式:运行和部署

我正在完成一个支持两种运行方式的Web项目的构建:

  • 在当地使用mvn jetty-run;
  • 部署在应用程序服务器上.

对于应用程序服务器,许多库都标记为provided,否则会发生类路径冲突.与此同时,我已将这些依赖项重新声明为编译依赖项jetty-maven-plugin,因为否则目标无法正常运行.

构建工作正常,但我有大量的重复库.这样做有更干净的方法吗?

maven-2 jetty

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

找出GWT模块何时加载

我正在以下列方式将GWT方法导出到本机javascript:

public class FaceBookGalleryEntryPoint implements EntryPoint {

    @Override
    public void onModuleLoad() {

        FacebookGallery facebookGallery = new FacebookGallery();
        RootPanel.get().add(facebookGallery);

        initLoadGallery(facebookGallery);
    }

    private native void initLoadGallery(FacebookGallery pl) /*-{
        $wnd.loadGallery = function (galleryId) {
            pl.@com.example.fbg.client.FacebookGallery::loadGallery(Ljava/lang/String;)(galleryId);
        };
    }-*/;
}
Run Code Online (Sandbox Code Playgroud)

在主机页面中,我试图调用它:

<html>
    <head>
        <title>Facebook image gallery</title>
        <script type="text/javascript"
            src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>     
    </head>

    <body>
        <script type="text/javascript" src="/fbg/fbg.nocache.js"></script>
        <h1>Facebook gallery test</h1>
        <script type="text/javascript">
            $(document).ready(function() {
                loadGallery('blargh');              
            });
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

不幸的是,当调用document.ready回调时,尚未定义该函数.从Firebug控制台手动执行时,该功能正常工作.

我可以每隔50毫秒执行一次轮询,直到找到一个名称定义的函数,但这似乎是一种可怕的方法.

如何在模块加载时获得通知,因此当功能可用时?

gwt jsni

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