小编Tho*_*sen的帖子

使用Eclipse WTP的任何方式都不意味着在更改JSP页面时重新部署_WHOLE_应用程序

我已经将Web应用程序从MyEclipse迁移到Eclipse WTP,现在我正处于迁移后对代码库和网页进行第一次重大升级的过程中,坦白地说,保存JSP页面会导致重新部署,这让我很生气WHOLE应用程序,因为它需要时间,并且我的后端连接不能在会话对象的序列化 - 反序列化中存活(这是非常重要的修复).除此之外,JSP编辑器非常慢,所以我经常不得不停下来让编辑赶上来确定我的编辑在使用JavaServer Faces的小型JSP中的位置.禁用验证没有帮助.

Eclipse Dynamic Web Project依赖于几个库eclipse项目,所以我不能告诉例如Jetty使用WebRoot文件夹,因为类路径中缺少几个依赖项.

问题是:

  • 是否有一种工作方式 - 任何工作方式 - 使用Eclipse WTP系统并不意味着每次保存任何文件时都重新部署所有内容?

我可以使用Tomcat 5.5或Jetty 6作为服务器.


编辑:让JSP编辑器能够跟上它也会非常好......


编辑:有问题的JSP页面包含JSF标签(myfaces 1.1.4,tomahawk 1.1.9),如果这有所不同?

java eclipse web-applications eclipse-wtp

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

如何在Spring中以编程方式**配置JSR-330 @Provider和@Inject @Named("foo")String**?

我们决定将依赖注入和JSR-330注释用于我们未来的模块化工作,并且对基于Guice 2 SVN的第一个可交付成果非常满意.

现在我们需要确保并通过单元测试记录我们需要的构造,在编程时配置时也可以在Spring中工作(我们需要与Guice相同的重构支持,因此没有XML文件).我有一个问题,@Provider@Inject @Named("foo") String,但我已清楚@Inject工作有:

ApplicationContext ctx = new AnnotationConfigApplicationContext(LIBL_Object.class, 
                                                                CORE_Provider.class);
this.object = ctx.getBean(LIBL_Object.class);
Run Code Online (Sandbox Code Playgroud)

其中LIBL_Object是被注入的基类,但正如我在Spring希望CORE_Provider不登记.

CORE_Provider的实现是

package qa.jsr330.core;

import javax.inject.Provider;

public class CORE_Provider implements Provider<ProvidedInterface> {
    @Override
    public ProvidedInterface get() {
        return new CORE_Provided();
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望它注入

package qa.jsr330.core;

import javax.inject.Inject;

public class LIBL_Object {

    private ProvidedInterface provided;

    public ProvidedInterface getProvided() {
        return provided;
    }

    @Inject
    public void setProvided(ProvidedInterface provided) {
        this.provided = provided;
    }
// Other stuff omitted.
}
Run Code Online (Sandbox Code Playgroud)

我们还发现,我们可以使用@Named标记非常清楚地传递配置值.此代码如下所示: …

java spring jsr330

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

"Windows错误报告"可以用于非致命的Java问题吗?

我想知道是否有办法从Java内部"内部"使用Windows错误报告?

换句话说,使用该机制将异常报告回中央位置而不会导致实际的JVM崩溃(据我所知,这首先触发了这一点).

这里的想法是更容易从Windows用户收集错误报告.


如果它可以成为受控关机的一部分,我也想听听.即不是JVM崩溃,而是从Java程序正常,受控制的退出.


仔细想想之后,我认为为我们的目的创建一组文本文件(或者只是在单个文本流中管道)到位于我们文件系统内部的小型Windows应用程序就足够了.然后,所述Windows应用程序突然崩溃并导致发送报告,包括我们提供的文本.那会有用吗?

java windows-error-reporting

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

如何在呈现响应之前处理多个提交?

从测试中可以看出,如果响应速度不够快,有时可能会多次按下一个按钮,导致后端代码的多次调用,这是我们不想要的.

应用程序是使用Glassfish 3.1.1中的JSF 2.0的Java EE 6 Web Profile.

我想知道如何正确处理这个问题,并想到了几个场景:

  • 提交应该在呈现响应时使用javascript禁用所有按钮.
  • 会话范围中的一个标志表示它已经处于活动状态,因此会跳过敏感代码,然后继续重新呈现先前提交的响应.
  • 同步块延迟处理直到前一个请求完成.然后应该检测到它已经被处理和跳过.
  • 使用其中一个"新"范围,如转换来处理检测?

我的直觉是,最好的方法是让敏感的代码块原子化,但问题是呈现正确的响应.

我该怎么做呢?

jsf java-ee-6 jsf-2

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

在Java中绑定到0.0.0.0是否保证绑定到所有网络接口?

我从经验上发现了这一点

Endpoint endpoint1 = Endpoint.create(new Ping());
endpoint1.publish("http://0.0.0.0:8080/ws/ping");
Run Code Online (Sandbox Code Playgroud)

绑定到当前计算机上的所有网络接口(而不仅仅是localhost - 127.0.0.1或主机名),但我无法找到说明这是有保证的文档.

问题:在Java中定义绑定到0.0.0.0将始终绑定到所有网络接口?

java networking

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

商业Java分析器相对于免费分析器有什么优势,例如Netbeans中的那个?

偶尔我必须对Java代码进行一些分析工作,我想知道为什么我应该让我的老板在商业分析器中进行调查,而不是仅仅使用Netbeans或JConsole中的那个?

什么样的杀手特征会保证投资?

java profiler

9
推荐指数
2
解决办法
8224
查看次数

在Hudson或其他CI工具中使用Ant自动检出和编译Eclipse项目的最佳方法?

我们有几个产品有很多共享代码,必须保留几个版本.

为了解决这个问题,我们使用了很多Eclipse项目,其中一些包含库jar,还有一些包含共享源代码(在几个项目中,为了避免获得具有大量依赖关系的巨大堆,同时能够从头开始编译所有内容以确保源和二进制文件是一致).我们使用projectSet.psf管理那些,因为这些可以直接从CVS中拉出所有项目并留下完全准备好的工作区.我们不直接进行ant构建或使用maven.

我们现在希望能够将所有这些项目及其各种版本放在一个连续集成工具中 - 我喜欢Hudson但这只是一个品味问题 - 这实际上意味着我们需要一种自动方式来检查项目到一个新的工作区,并按照每个项目中的项目文件中的描述编译源文件夹.Hudson没有提供这样的方法来构建项目,所以我一直在考虑采用这种方法的最佳方法.

想法已经存在

  • 查找或编写一个了解projectSet.psf并映射到cvs-checkout和编译标签的ant插件/转换器.
  • 从Eclipse中创建build.xml文件并使用它们.我试过这个,发现结果很冗长,绝对位置不好用自动工具把文件放在他们想要的地方.
  • 编写一个了解projectSet.psf的Hudson插件来派生配置并构建它.
  • 只要咬紧牙关,手动创建和更新CI配置,只要东西坏了 - 我不喜欢这个:)

我真的很想听听别人的经历,所以我可以决定如何解决这个问题.


编辑:另一个选项可能是使用CI,它更了解Eclipse项目和/或项目集.我们没有宗教信仰 - 这只是让自己无需自己动手就可以运行的问题.巡航控制可能是一个更好的选择吗?其他?


编辑:发现ant4eclipse有一个"团队项目集"工具. http://ant4eclipse.sourceforge.net/


编辑:使用ant4eclipse和ant-contrib ant扩展来构建一个完整的工作空间,作为一个类似于Eclipse 3.5M6中的Runnable Jar工具的sjgned runnable jar文件.我仍然依赖于Eclipse来创建初始的空工作空间,并提取ProjectSet,这是下一个障碍.


编辑:使用双配置结束,即Hudson从CVS中提取与ProjectSet.pdf文件中列出的相同的模块集(需要具有相同的标记),使它们彼此相邻.然后ant4eclipse与嵌入在主模块中的projectSet.psf文件很好地配合.警告:Hudson中的模块列表必须手动更新,之后需要手动工作区清理才能让Hudson"发现"现在有比以前更多的项目.这对我们来说已经好几个月了,但是让一切都在ant文件中运行是相当繁琐的.


编辑:使用ant4eclipse的"使用团队项目"和项目面板中的Ctrl-A,Ctrl-C和Hudson的CVS项目中的Ctrl-V已经证明可以很好地适应我们(对于成熟的项目很少改变).我正在等待ant4eclipse 1.0的发布 - http://www.ant4eclipse.org/,目前在里程碑2中 - 看看有多少本土功能可以被ant4eclipse的东西取代.

编辑:ant4eclipse是在M4的20100609,因此http://www.ant4eclipse.org/node?page=1的时间表有些滑落.


编辑:使用我们的ant4eclipse方法更长时间后的结论是构建脚本变得非常粗糙并且难以维护.团队ProjectSet工具(ant4eclipse用于定位项目)适用于基于CVS的存储库,但不是在我们迁移到git之后(这本身就是一件大事).新项目很可能基于maven,因为这在Jenkins中有很好的支持.

java eclipse cvs continuous-integration hudson

9
推荐指数
1
解决办法
4964
查看次数

将包含Eclipse项目的CVS存储库转换为git的最强大的方法?

我有一个情况,我有一个老年人的CVS存储库,我们希望一次性转换为git,同时保持完整的历史记录等.

存储库根目录下的所有文件夹都包含Eclipse项目(普通或动态Web项目),包括.classpath和.project.我们使用Team ProjectSet来检查给定任务所需的项目(项目集位于包含main的项目中,其余是库项目).

签出Team ProjectSet后,工作区将完全填充.

多年来这种方法运作良好(除了3.5附带的项目设置部分),如果可能的话,我们希望以类似的方式使用git,但我们不确定如何.

我玩过一段时间git cvs import但失败了 - 可能是因为我们没有使用模块.

您如何建议我们这样做,以及我们应该如何使用git来允许我们当前使用共享库项目?我们将HAVE介绍Maven和创造我们的图书馆项目的Maven模块?或者只是蚂蚁常春藤?


编辑:我现在设法通过合适的cvs2svn调用将我们的CVS存储库转换为Subversion,并发现Eclipse很好地识别了生成的Subversion存储库.不幸的是在克隆http: //github.com/iteman/svn2git`并尝试运行bin/svn2git之后我得到了

tra@Sandbox:~/cvsgit/svn2git/svn2git$ bin/svn2git
bin/svn2git:35:in `initialize': wrong number of arguments (2 for 1) (ArgumentError)
        from bin/svn2git:35:in `new'
        from bin/svn2git:35
Run Code Online (Sandbox Code Playgroud)

这是与Ubuntu 10.04.1 LTS服务器,我尝试了各种sudo与Ruby及其宝石的东西,但没有完全理解我做了什么,因为我不是一个Ruby程序员,所以我可能搞砸了一些东西.我很感激建议 - 如果最简单的是安装另一个Linux变种来进行转换,那很好.


编辑:

https://help.ubuntu.com/community/Git http://css.dzone.com/articles/subversion-git-morning


编辑:我第一次尝试使用默认的svn2git成功完成(一段时间后),我得到一个很好的存储库,其中git branch -a大致报告

tra@Sandbox:~/gitroot/svnroot$ git branch -a
* master
  remotes/XX64_DEPLOYED_CODE
  remotes/Beta1
  remotes/Beta2
  remotes/SV46
  ... lots more
Run Code Online (Sandbox Code Playgroud)

我们有兴趣能够检查SV46分支并使用它(我们基本上不关心标签,只关心实际的分支).我已经设置了gitosis并将此存储库推送到gitosis,并将其克隆到另一台计算机,以了解如何使用Eclipse进行"使用SV46"位. THAT库不知道所有的分支:

tra@TRA ~/git/git00 (master)
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

我是否需要按照svn2git的原始结果来获取gitosis存储库中的信息?我需要用参数克隆吗?我应该使用建议的版本而不是Ubuntu附带的版本重做svn2git步骤吗?

编辑:事实证明,使用"git …

java eclipse git cvs

9
推荐指数
1
解决办法
2293
查看次数

如何防止xml转换器将空标记转换为单个标记

我正在使用javax.xml.transform.Transformer类将DOM源转换为XML字符串.我在DOM树中有一些空元素,这些元素成为我不想要的一个标记.

我该如何防止<sampletag></sampletag>成为<sampletag/>

java xml transformer-model

9
推荐指数
1
解决办法
3362
查看次数

如何修复"运行配置错误:[SDK中没有找到Rails]"?

我正在寻找一个Rails项目,我希望能够在Ubuntu 15.10下使用IntelliJ 15.0.3(完整版).

该项目使用"捆绑安装"构建.Rails使用"rails s"从命令行运行.IntelliJ(和RubyMine 8.0.3)不想启动Rails,但抱怨"[在SDK中找不到Rails]".

我在Ubuntu中尝试过默认的ruby.我已经尝试编译Ruby 2.3.0并将其安装在我自己的主文件夹中.ruby二进制文件旁边有一个rails二进制文件.宝石已安装.我不能在这个项目中使用jruby,因为需要具有原生扩展名的gem.

我怀疑我可能会遇到Ruby插件中的错误.我可以使用的解决方法或类似方法吗?

java ruby-on-rails intellij-idea rubymine

9
推荐指数
1
解决办法
1376
查看次数