我需要构建一个JSON字符串,如下所示:
[
{ 'id': 1, 'name': 'John'},
{ 'id': 2, 'name': 'Dani'}
]
val jArray = JsArray();
jArray += (("id", "1"), ("name", "John"))
jArray += (("id", "2"), ("name", "Dani"))
println(jArray.dump)
Run Code Online (Sandbox Code Playgroud)
我需要能够添加行jArray,比如jArray += ...
最近的图书馆/解决方案是什么?
从python调用java的最佳方法是什么?(jython和RPC不是我的选择).
我听说过JCC:http://pypi.python.org/pypi/JCC/1.9 一个C++代码生成器,用于从C++/Python调用Java但是这需要编译每个可能的调用; 我更喜欢另一种解决方案.
我听说过JPype:http ://jpype.sourceforge.net/ tutorial:http://www.slideshare.net/onyame/mixing-python-and-java
import jpype
jpype.startJVM(path to jvm.dll, "-ea")
javaPackage = jpype.JPackage("JavaPackageName")
javaClass = javaPackage.JavaClassName
javaObject = javaClass()
javaObject.JavaMethodName()
jpype.shutdownJVM()
Run Code Online (Sandbox Code Playgroud)
这看起来像我需要的.但是,最后一个版本是从2009年1月开始的,我看到人们无法编译JPype.
JPype是一个死的项目吗?
还有其他选择吗?
问候,大卫
我需要使用puppet创建一个带密码的测试用户.
我已经读过,木偶无法以通用的跨平台方式管理用户密码,这很可惜.我正在为Red Hat Enterprise Linux Server 6.3版做这个.
我这样做:
user { 'test_user':
ensure => present,
password => sha1('hello'),
}
Run Code Online (Sandbox Code Playgroud)
puppet更新了用户的密码,但Linux在我尝试登录时说login/pwd不正确.
如果我在Linux中手动设置密码sudo passwd test_user,然后/etc/shadow在puppet中查看并硬编码该值,它可以工作(我可以登录).就像是:
user { 'test_user':
ensure => present,
password => '$1$zi13KdCr$zJvdWm5h552P8b34AjxO11',
}
Run Code Online (Sandbox Code Playgroud)
我也试过$1$在前面添加sha1('hello'),但它也不起作用(注意,$1$代表sha1).
如何修改第一个例子使其工作(使用puppet文件中的明文密码)?
ps:我知道我应该使用LDAP或sshkeys或其他东西,而不是在puppet文件中硬编码用户密码.但是,我这样做只是为了运行puppet vagrant测试,所以可以硬编码用户密码.
我需要针对WSDL?验证SOAP消息?(与XML可以根据XSD模式验证文件的方式相同).
我没有打电话给任何网络服务; 我只是有一条SOAP消息和一条消息WSDL,我需要验证SOAP消息是否正确.无需调用网络服务或之后的任何内容.
我需要在Java程序中进行此验证.你知道一个小的Java库吗?
ps:我知道JAX-WS当你调用webservice时,有几个库可以验证请求/响应.但同样,我没有打电话给任何网络服务; 我有一个简单的SOAP消息,和一个WSDL,我需要一个功能来验证SOAP消息WSDL.
ps:我也知道有可以做到这一点的工具,比如SOAPUI和XMLSpy.同样,我需要在我的Java程序中进行此验证.
ps:我知道我可以提取SOAP消息的正文部分,然后根据消息进行验证XSD.但是,我想验证整个SOAP消息WSDL.
BlueCove是一个用于蓝牙的Java库,适用于MsWindows,Mac OSX等.
但似乎它不支持Bluetooth Low Enegry 4.0.
Android有一个用于蓝牙LE 4.0的标准Java库:http: //developer.android.com/guide/topics/connectivity/bluetooth.html
是否有针对MsWindows和/或Mac OSX的蓝牙LE 4.0的Java库?
通过以下简化示例:
我按预期得到以下内容:
{"person":{"name":"john","tags":["tag1","tag2"]}}
Run Code Online (Sandbox Code Playgroud)
但是,如果我只设置一个标签,我会得到这个:
{"person":{"name":"john","tags":"tag1"}}
Run Code Online (Sandbox Code Playgroud)
我期待得到这个:
{"person":{"name":"john","tags":["tag1"]}}
Run Code Online (Sandbox Code Playgroud)
也就是说,jettison删除了标签的数组,因为数组中只有一个元素.
我觉得这很不安全.
即使只有一个元素,如何强制jettison写一个数组?
注意:我知道还有其他替代方法,例如StAXON.但是,我在这里问如何使用Jettison实现这一目标.请不要建议另一种替代方案.
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.*;
import java.io.*;
import javax.xml.bind.*;
import javax.xml.stream.XMLStreamWriter;
import org.codehaus.jettison.mapped.*;
public class JettisonTest {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Person.class);
Person person = new Person();
person.name = "john";
person.tags.add("tag1");
person.tags.add("tag2");
Configuration config = new Configuration();
MappedNamespaceConvention con = new MappedNamespaceConvention(config);
Writer writer = new OutputStreamWriter(System.out);
XMLStreamWriter xmlStreamWriter = new MappedXMLStreamWriter(con, writer);
Marshaller marshaller = jc.createMarshaller();
marshaller.marshal(person, xmlStreamWriter);
}
} …Run Code Online (Sandbox Code Playgroud) /etc/file.txt如果文件存在,这个木偶清单将删除该文件:
file { "/etc/file.txt":
ensure => absent,
}
Run Code Online (Sandbox Code Playgroud)
如何告诉木偶删除所有文件/etc/*.txt?
根据参考资料,似乎puppet file不允许使用通配符.
http://docs.puppetlabs.com/references/latest/type.html#file
ps:我知道我可以从puppet执行一个脚本,但我更喜欢另一种更优雅的方式.
我在IntelliJ中有一个编译的Java项目,现在我正在慢慢改变.
有没有办法让IntelliJ运行项目,即使代码的某些部分仍然无法编译?如果是这样,怎么样?
你问我为什么需要这个?请参阅此票证:IDEA-61945运行和调试命令应忽略与正在运行的主要内容无关的编译错误. http://youtrack.jetbrains.net/issue/IDEA-61945?query=it#tab=Comments
请不要回答这篇帖子质疑我是否应该或者我不需要运行项目,即使它没有编译.请.
如果在IntelliJ中不可能,是否可以在maven中使用?怎么样?
我建立了一个码头安全领域如下(与之一起使用mvn jetty:run).这工作:
pom.xml
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<webAppXml>src/test/resources/jetty-test.xml</webAppXml>
<useTestScope>true</useTestScope>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
jetty-test.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Get name="securityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">MySecurityRealm</Set>
<Set name="config">src/test/resources/jetty-realm.properties</Set>
<Call name="start"/>
</New>
</Set>
<Set name="checkWelcomeFiles">true</Set>
</Get>
</Configure>
Run Code Online (Sandbox Code Playgroud)
然后我尝试删除对jetty-test.xml文件的需求,如下所示:
pom.xml
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<!-- <webAppXml>src/test/resources/jetty-test.xml</webAppXml> -->
<useTestScope>true</useTestScope>
<loginServices>
<loginService implementation="org.eclipse.jetty.security.HashLoginService">
<name>MySecurityRealm</name>
<config>${basedir}/src/test/resources/jetty-realm.properties</config>
</loginService>
</loginServices>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但它失败了:
2013-03-26 16:33:26.197:WARN:oejuc.AbstractLifeCycle:FAILED org.eclipse.jetty.security.ConstraintSecurityHandler@73937bc8: java.lang.IllegalStateException: No LoginService for org.eclipse.jetty.security.authentication.BasicAuthenticator@3d47dde in org.eclipse.jetty.security.ConstraintSecurityHandler@73937bc8
Run Code Online (Sandbox Code Playgroud)
任何的想法?
我正在使用此文档:http: //wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin#Configuring_Security_Settings
使用nodejs request库:https://github.com/mikeal/request
var request = require('request');
request('http://example.com', function (error, response, body) {
...
})
Run Code Online (Sandbox Code Playgroud)
是否有可能在回调上获得响应时间?doc提到了response.statusCode.看看库源代码我也看到了无证件的response.headers和response.href,但是我没有看到responseTime或者类似的.
或者,是否有替代库request提供响应时间?
ps:我知道我可以做这样的事情,但这不是解决方案,因为我正在制作许多异步请求,我无法控制每个请求何时开始.
var request = require('request');
var start = new Date();
request('http://example.com', function (error, response, body) {
...
var responseTime = new Date() - start;
})
Run Code Online (Sandbox Code Playgroud)