我的问题是生成版本1 UUID.我们使用Jetty 6.x,Maven(启动Jetty等)和Apache Commons ID(从当前时间生成UUID版本1).
Apache Commons ID需要使用参数向JVM通知配置文件,例如'org.apache.commons.id.uuid.config.resource.filename = commons-id-uuid.xml'.我检查了Apache Commons ID代码,它试图从类路径中找到该文件.Jetty的文档声明WEB-INF/lib和WEB-INF/classes在类路径中.'commons-id-uuid.xml'可以从WEB-INF/classes目录的根部署的war文件中找到,但是Jetty无法加载它:
Message: java.lang.RuntimeException:
java.lang.IllegalStateException: commons-id-uuid.xml loaded as system resource is null
Run Code Online (Sandbox Code Playgroud)
Jetty使用以下命令启动:
mvn jetty:run -Dorg.apache.commons.id.uuid.config.resource.filename=commons-id-uuid.xml
Run Code Online (Sandbox Code Playgroud)
什么出了什么问题?我们只需要生成UUID版本1标识符.有什么建议?
我想在Spring应用程序中使用apache commons-email中的HtmlEmail,所以我使用config xml如下:
<bean id="commonsEmail" class="org.apache.commons.mail.HtmlEmail">
<property name="hostName" value="smtp.example.com" />
<property name="TLS" value="true"/>
<property name="smtpPort" value="587"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
但由于smtpPort属性,我无法初始化它:
bean类的属性'smtpPort'无效[org.apache.commons.mail.HtmlEmail]:Bean属性'smtpPort'不可写或具有无效的setter方法.setter的参数类型是否与getter的返回类型匹配?
请告诉我我做错了什么?谢谢.
因为我需要空标记来读取空字符串或null,我决定使用apache commons lang StrTokenizer
但是我仍然无法获得空字符串.我知道我需要setEmptyTokenAsNull在标记之前设置方法.但是我该怎么做呢?请帮忙.
tok = new StrTokenizer(line,",");
tok.setEmptyTokenAsNull(true);
Run Code Online (Sandbox Code Playgroud) 如何对String进行分区以提取其中出现的所有单词/术语并计算每次出现的次数?例如let:String q = "foo bar foo"
我想要一个DS {<foo,2>, <bar,1>}.这是我代码附带的最简单的代码*.错误或更简洁的替代方案?
String[] split = q.toString().split("\\s");
Map<String, Integer> terms = new HashMap<String, Integer>();
for (String term : split) {
if(terms.containsKey(term)){
terms.put(term, terms.get(term)+1);
}
}
Run Code Online (Sandbox Code Playgroud)
(还没有编译)
我用ArrayUtils.add(double[], double)了一些频率.显然我有一个盲点,为什么它不在这里工作.有人可以帮忙吗?
double[] reliableNeighborValues = new double[1];
for (int j = 0; j < 8; j++) {
if (pixelInfo[j] > 0) {
System.out.println("pre add array length "+reliableNeighborValues.length);
for (int k = 0; k < reliableNeighborValues.length; k++) {
System.out.println("-- "+reliableNeighborValues[k]);
}
ArrayUtils.add(reliableNeighborValues, pixelInfo[j]);
System.out.println("reliable neighbor "+j+" "+pixelInfo[j]+" array length "+reliableNeighborValues.length);
for (int k = 0; k < reliableNeighborValues.length; k++) {
System.out.println("-- "+reliableNeighborValues[k]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
pre add array length 1
-- 0.0
reliable neighbor 0 5.3364882 array length …Run Code Online (Sandbox Code Playgroud) 我正在从FTP服务器下载MP3文件.这是一个Android应用程序,它将下载然后播放MP3文件.下载是使用apache commons库在Java中实现的,代码主要基于另一个教程.下载在我运行Java的桌面上运行速度非常快,大约需要5秒才能下载一个大约10mb的文件,但是在Android设备上运行相同的代码(我已经尝试过2次),下载时需要5-10分钟才会慢得多同一个文件.(两项测试均通过Wifi完成).
代码基于:http://androiddev.orkitra.com/?p = 28&cpage = 2#comment-40
下面的代码显示了使用的两种方法:连接和下载.
public boolean connect(String host, String username, String pass, int port){
try{
mFTPClient.connect(host, port);
if(FTPReply.isPositiveCompletion(mFTPClient.getReplyCode())) {
boolean loginStatus = mFTPClient.login(username, pass);
mFTPClient.setFileType(FTP.BINARY_FILE_TYPE);
mFTPClient.enterLocalPassiveMode();
mFTPClient.setKeepAlive(true);
return loginStatus;
}
} catch (Exception e){
System.err.println("Error: Could not connect to: " + host);
e.printStackTrace();
}
return false;
}
public boolean download(String srcFilePath, String dstFilePath) {
boolean downloadStatus = false;
try {
FileOutputStream dstFileStream = new FileOutputStream(dstFilePath);
downloadStatus = mFTPClient.retrieveFile(srcFilePath, dstFileStream);
dstFileStream.close();
return downloadStatus;
} …Run Code Online (Sandbox Code Playgroud) 请找到下面的代码,我用它来使用apache commons的RandomStringUtils生成随机字符串.
String key = RandomStringUtils.random(5, String.valueOf(System.currentTimeMillis()));
Run Code Online (Sandbox Code Playgroud)
我将密钥限制为5个字符.我的目的是在我向DB插入新记录时为每条记录生成唯一键.以上代码是否适合相应的任务,我可以放心,每次插入新记录时,我都会从上面的代码中获得一个唯一的密钥.
我有一个json,其中userId属性字符串为"null" -
"userId":"null"
Run Code Online (Sandbox Code Playgroud)
我有一个方法来检查我的字符串是否为空 -
public static boolean isEmpty(String value) {
return value == null || value.isEmpty();
}
Run Code Online (Sandbox Code Playgroud)
但每次我上面的方法返回我的false上面userId?它应该为true,因为userId为null.在Guava或Apache Commons中是否还有其他API可以做到这一点?
在我的android项目中,我需要commons-codec 1.8,我想排除内置的commons-codec版本.我也有一些maven依赖项,我希望它们使用1.8而不是内置.
这是错误消息,它看起来像内置的jar /system/framework/ext.jar
java.lang.NoSuchMethodError: No static method encodeHex([BZ)[C in class
Lorg/apache/commons/codec/binary/Hex; or its super classes (declaration of
'org.apache.commons.codec.binary.Hex' appears in /system/framework/ext.jar)
Run Code Online (Sandbox Code Playgroud) dependencies android apache-commons maven apache-commons-codec
List.of(E... elements)java中的方法返回的列表确实返回了一个不可变的列表,但是通过查看所创建的列表根本看不到该列表。创建的列表只是抛出一个异常,而不是根本没有显示更改列表的可能性。我的意思是,那List.of(E... elements)应该返回一个ImmutableListthat extends List。这样,用户可以决定他是否愿意显示这种不变性的事实。但是我没有发现有人抱怨或显示其他解决方案。默认情况下,甚至Guava和Apache Commons也不会这样做。只有Guava才有可能创建它(尽管有很多代码):
List<String> list = new ArrayList<String>(Arrays.asList("one", "two", "three"));
ImmutableList<String> unmodifiableList = ImmutableList.<String>builder().addAll(list).build();
Run Code Online (Sandbox Code Playgroud)
但是,即使此类也具有(不建议使用)add和remove方法。
谁能告诉我为什么没人关心这个(看似基本的)问题?
apache-commons ×10
java ×8
string ×3
android ×2
guava ×2
apache ×1
classpath ×1
collections ×1
dependencies ×1
email ×1
ftp-client ×1
hashcode ×1
java-ee ×1
jetty ×1
maven ×1
spring ×1
tokenize ×1
uuid ×1