我正在使用Eclipse 3.7,在Web代理后面的Windows XP环境中.
我想在新解压缩的 Eclipse Indigo(Eclipse Java EE Indigo M4)上安装Groovy插件.我将更新站点添加到列表中.Available Software Site
但Eclipse无法检索此插件的信息,因此无法安装...
如果我将Native
配置放入General > Network Connections
,但未Auth
选择该选项,则在尝试访问更新站点时出现以下错误:
HTTP Proxy Authentication Required: http://dist.codehaus.org/groovy/distributions/greclipse/snapshot/e3.7/content.xml
HTTP Proxy Authentication Required: http://dist.codehaus.org/groovy/distributions/greclipse/snapshot/e3.7/content.xml
Proxy Authentication Required
Run Code Online (Sandbox Code Playgroud)
所以现在,我选择manual
,我为三个模式(HTTP,HTTPS,SOCKS)定义所有正确的信息:代理,端口,Auth,用户和密码.但是,当我尝试访问更新站点时,Eclipse表明他是Fetching children of Groovy Eclipse
,但保持此状态为0%...
奇怪的是,即使我在General > Network Connections
配置中输入了错误的密码,我也没有收到任何错误消息.
我的问题:
workspace/.metadata/.log
不包含任何有用的信息)?另一个问题(轻微)是代理设置的修改似乎只在Eclipse重启后才能处理.
ps1:使用我的浏览器,我可以访问更新站点,因此它不会被代理阻止.
ps2:此问题与此插件无关,因为Eclipse对其他插件的行为方式相同.
ps3:这是workspace/.metadata/.log
我启动Eclipse并尝试安装插件的内容(所有这些日志都是在启动时编写的,当Eclipse尝试访问更新站点时没有)
!SESSION 2011-05-02 10:38:58.681 -----------------------------------------------
eclipse.buildId=I20101208-1300
java.version=1.6.0_20 …
Run Code Online (Sandbox Code Playgroud) 我有一个多模块项目,像这样:
main-project/
module1/
module2/
sub-module1/
sub-module2/
sub-module3/
...
module3/
module4/
...
Run Code Online (Sandbox Code Playgroud)
我需要在Maven2中定义一组属性(取决于我想要释放项目的环境).我不会使用<properties>
因为有很多属性...因此,我使用Properties Maven2插件.
属性文件位于main-project/
目录中.如何在主pom.xml中设置正确的目录,以便为任何子项指定在哪里找到属性文件?
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>???/env_${env}.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
如果我只设置<file>env_${env}.properties</file>
,那么当Maven2编译第一个模块时,它将找不到该main-project/env_dev.properties
文件.如果我设置<file>../env_${env}.properties</file>
,那么将在父级别或任何子模块级别引发错误...
正如大多数人现在痛苦地意识到的那样,用于处理日历日期的Java API(特别是类java.util.Date
和java.util.Calendar
)是一个糟糕的混乱.
脱离我的头顶:
现在我的问题是:
这些类是如何进入Java SDK的?大多数这些问题看起来相当明显(特别是Date是可变的)并且应该很容易避免.那怎么回事?时间压力?或者回想起来的问题是否明显?
我意识到这不是一个严格的编程问题,但我发现理解API设计如何出错是很有趣的.毕竟,错误总是一个很好的学习机会(我很好奇).
我有一个Maven2项目,我需要在属性文件中添加当前版本和当前日期.
对于当前版本,我已经使用过${project.version}
,它可以正常工作.
我的问题是如何在我的属性文件中设置当前日期(即Maven2完成构建的日期):
client.version=Version ${project.version}
client.build=???
Run Code Online (Sandbox Code Playgroud)
(另外,如果我可以指定日期的格式,那将非常棒)
最近,我们对我们的代码进行了安全审核,其中一个问题是我们的应用程序受Xml外部实体(XXE)攻击.
基本上,应用程序是一个通过Web服务以XML形式接收输入的计算器.
以下是对我们的应用程序进行此类XXE攻击的示例:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<foo:calculateStuff>
<!--Optional:-->
<xmlInput><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE currency [
<!ENTITY include SYSTEM "file:///d:/" >]>
<calcinput>...</calcinput>
]]></xmlInput>
</foo:calculateStuff>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)
如您所见,我们可以引用指向外部文件("file:///d:/"
)的实体.
关于XML输入本身(该<calcinput>...</calcinput>
部分)是使用JAXB(v2.1)解组的.Web服务部分基于jaxws-rt(2.1).
我需要做些什么来保护我的网络服务?
我是第一次与Thymeleaf合作,我需要澄清模板.如果我正确理解文档,我可以在我的页面中包含一个模板 - 或者只是一个片段.例如,我可以这样写:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head th:include="template/layout :: header">
</head>
<body>
Hello world
<div th:include="template/layout :: footer"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但我想要的实际上是使用模板的相反方式:不是在页面中包含模板片段,我想在我的模板中包含页面,类似于:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
...
</head>
<body>
<div id="my-template-header">...</div>
<div id="the-content">
<!-- include here the content of the current page visited by the user -->
???
</div>
<div id="my-template-footer">...</div>
</body>
Run Code Online (Sandbox Code Playgroud)
换句话说,有没有办法在Thymeleaf中拥有等效的Sitemesh装饰器标签?
谢谢
我已经将Karma配置为报告我的JavaScript代码的覆盖范围.以下是karma.conf.js
文件中配置的一部分:
coverageReporter: {
reporters: [
{
type: 'html',
dir: 'build/karma/coverage'
},
{
type: 'lcov',
dir: 'build/karma/coverage',
subdir: '.'
},
{
type: 'cobertura',
dir: 'build/karma/coverage'
}
]
},
Run Code Online (Sandbox Code Playgroud)
我的lcov.info
文件格式如下:
TN:
SF:./app/scripts/app.js
FN:16,(anonymous_1)
FN:26,(anonymous_2)
FNF:2
FNH:1
FNDA:1,(anonymous_1)
FNDA:0,(anonymous_2)
DA:2,1
DA:20,1
DA:29,0
DA:34,0
LF:4
LH:2
BRF:0
BRH:0
end_of_record
Run Code Online (Sandbox Code Playgroud)
不幸的是,在Sonarqube JavaScript的插件,仅考虑与启动线SF:
,DA:
或BRDA:
(CF LCOVParser).
因此,LCOV HTML报告(由伊斯坦布尔制作)使我在相同数据上的代码覆盖率高于Sonar.
有没有办法改变lcov.info
生成的格式?
如果我查看伊斯坦布尔代码,我可以想象不同标签的含义:
BRF
,BRH
,BRDA
是分支机构.FN
,FNF …
首先,我必须说我对API java.util.concurrent很新,所以也许我正在做的是完全错误的.
我想做什么?
我有一个Java应用程序,基本上运行2个单独的处理(称为myFirstProcess,mySecondProcess),但这些处理必须同时运行.
所以,我试着这样做:
public void startMyApplication() {
ExecutorService executor = Executors.newFixedThreadPool(2);
FutureTask<Object> futureOne = new FutureTask<Object>(myFirstProcess);
FutureTask<Object> futureTwo = new FutureTask<Object>(mySecondProcess);
executor.execute(futureOne);
executor.execute(futureTwo);
while (!(futureOne.isDone() && futureTwo.isDone())) {
try {
// I wait until both processes are finished.
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
logger.info("Processing finished");
executor.shutdown();
// Do some processing on results
...
}
Run Code Online (Sandbox Code Playgroud)
myFirstProcess和mySecondProcess是实现的类Callable<Object>
,并且在call()方法中进行所有处理.
它工作得很好,但我不确定这是正确的方法.是一个做我想要的好方法吗?如果没有,你能给我一些提示来增强我的代码(并尽可能保持简单).
我为Maven 2开发了几个Maven插件,但我想知道当我想为Maven 3.0开发插件(或迁移现有的插件)时主要的变化是什么.
在Maven站点的文档没有达到最新的(一个惊喜的!)和所有相关的页面仍然处理与Maven 2.0,像这样的一个:
本指南旨在帮助用户开发Maven 2.0的Java插件.
举个例子,在Maven 2插件中,我定义了一个配置参数,如下所示:
/**
* Some parameter.
*
* @parameter
* @required
*/
private String foo;
Run Code Online (Sandbox Code Playgroud)
所以现在,使用新的Maven Plugin API,我期待真正的 Java注释......
问题:在哪里可以找到有关Maven 3插件开发的文档/信息?
我有一个应用程序,其中许多"单元"测试在执行期间使用与Oracle数据库的真实连接.
可以想象,这些测试需要花费太多时间来执行,因为它们需要初始化一些Spring上下文,并与Oracle实例进行通信.除此之外,我们还必须管理复杂的机制,例如事务,以避免在测试执行后修改数据库(即使我们使用Spring中的有用类AbstractAnnotationAwareTransactionalTests
).
所以我的想法是逐步用内存数据库替换这个Oracle测试实例.我会用hsqldb
或者更好h2
.
我的问题是要知道这样做的最佳方法是什么.我主要关心的是构建内存数据库结构和插入参考数据.
当然,我可以使用像SQL Developer
or 这样的工具从Oracle中提取数据库结构TOAD
,然后修改这些脚本以使它们适应hsqldb
或h2
使用它们.但我不认为这是更好的方法.
事实上,我已经在另一个项目上使用了hsqldb
,但是我已经手动编写了所有脚本来创建表.幸运的是,我只创建了几张桌子.我在此步骤中的主要问题是将用于创建表的Oracle脚本"转换"为该hsqldb
语言.
例如,使用以下sql命令在Oracle中创建的表:
CREATE TABLE FOOBAR (
SOME_ID NUMBER,
SOME_DATE DATE, -- Add primary key constraint
SOME_STATUS NUMBER,
SOME_FLAG NUMBER(1) DEFAULT 0 NOT NULL);
Run Code Online (Sandbox Code Playgroud)
需要"翻译"为hsqldb
:
CREATE TABLE FOOBAR (
SOME_ID NUMERIC,
SOME_DATE TIMESTAMP PRIMARY KEY,
SOME_STATUS NUMERIC,
SOME_FLAG INTEGER DEFAULT 0 NOT NULL);
Run Code Online (Sandbox Code Playgroud)
在我当前的项目中,有太多表要手动执行...
所以我的问题:
h2
还是hsqldb
提供了一些工具来生成一个Oracle连接的脚本?技术信息 …
java ×5
maven-2 ×2
api-design ×1
concurrency ×1
date ×1
eclipse ×1
filtering ×1
futuretask ×1
h2 ×1
hsqldb ×1
javascript ×1
jaxb ×1
karma-runner ×1
lcov ×1
maven-3 ×1
maven-plugin ×1
properties ×1
proxy ×1
security ×1
sonarqube ×1
spring-mvc ×1
thymeleaf ×1
unit-testing ×1
ws-security ×1
xxe ×1