小编Col*_*ert的帖子

如何在PHP中运行Java程序并获取输出?

我想运行类似的东西(在myProgram.sh中):

java -cp whatever.jar com.my.program $1
Run Code Online (Sandbox Code Playgroud)

在PHP中并读取输出.

到目前为止我有类似的东西:

$processOrderCommand = 'bash -c "exec nohup setsid /myProgram.sh ' . $arg1 . ' > /dev/null 2>&1 &"';
exec($processOrderCommand);
Run Code Online (Sandbox Code Playgroud)

但我真正喜欢的是能够在PHP脚本中获取java程序的输出而不只是将其作为另一个线程执行.

如何才能做到这一点?

php exec

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

这真的是适配器模式的一个例子吗?

我有一个接口 - "EventHandler" - 声明了几个方法.

public interface EventHandler {
    void handleEvent1();

    void handleEvent2();

    void handleEvent3();

    void handleEvent4();
}
Run Code Online (Sandbox Code Playgroud)

我还有一个类 - "EventHandlerAdapter" - 它实现了EventHandler.但是,它实际上并没有"实现"任何东西.关键是,如果另一个类想要实现EventHandler,而不是它的所有方法,它可以简单地扩展EventHandlerAdapter并只覆盖它想要的方法.

public class EventHandlerAdapter implements EventHandler {
    public void handleEvent1() {}

    public void handleEvent2() {}

    public void handleEvent3() {}

    public void handleEvent4() {}
}
Run Code Online (Sandbox Code Playgroud)

我不止一次见过这样的东西.名称"EventHandlerAdapter"向我建议它是适配器模式的一个例子......但它真的吗?我认为适配器的意义在于将现有实现转换为其他实现.我不知道这是怎么回事.

如果它不是适配器模式的示例,它是什么?当然已经发现了类似的事情.

java design-patterns adapter

7
推荐指数
1
解决办法
3530
查看次数

在maven jaxb codegen期间将DTMManagerDefault强制转换为DTMManager的ClassCastException

我在尝试运行使用jaxb2插件执行JAXB codegen的maven构建时遇到了一个奇怪的问题(请参阅下面的stacktrace).我能想到的最好的是DTMManager的一些实现,它是从与xalan-2.7.1中的JAR不同的JAR加载的.但是,我已经验证了用于运行jaxb:generate目标的类路径只有一个包含DTMManager或DTMManagerDefault的xalan-2.7.1.jar - 所以我不知道其他可能会遇到什么.

最后一个数据点:我们的构建指定了一个'快照'配置文件,它实际上只用于JAR up源(使用maven-source-plugin)并将它们作为工件发布.除了默认情况外,在指定此配置文件时才会出现上述故障情况.

我在Linux x64(Fedora 13)上使用Sun的64位JDK 1.6.0_21上运行的Maven 2.2.1 - 请参阅下面的'mvn -v'信息的堆栈跟踪.

关于问题可能是什么和/或如何进行调试的任何想法?这让我在过去几天感到悲痛,现在阻止了进展:(

java.lang.ClassCastException: org.apache.xml.dtm.ref.DTMManagerDefault cannot be cast to org.apache.xml.dtm.DTMManager
    at org.apache.xml.dtm.DTMManager.newInstance(DTMManager.java:137)
    at org.apache.xpath.XPathContext.<init>(XPathContext.java:102)
    at org.apache.xpath.jaxp.XPathImpl.eval(XPathImpl.java:207)
    at org.apache.xpath.jaxp.XPathImpl.evaluate(XPathImpl.java:281)
    at com.sun.tools.xjc.reader.internalizer.Internalizer.buildTargetNodeMap(Internalizer.java:224)
    at com.sun.tools.xjc.reader.internalizer.Internalizer.buildTargetNodeMap(Internalizer.java:289)
    at com.sun.tools.xjc.reader.internalizer.Internalizer.transform(Internalizer.java:134)
    at com.sun.tools.xjc.reader.internalizer.Internalizer.transform(Internalizer.java:96)
    at com.sun.tools.xjc.reader.internalizer.DOMForest.transform(DOMForest.java:448)
    at com.sun.tools.xjc.ModelLoader.buildDOMForest(ModelLoader.java:342)
    at com.sun.tools.xjc.ModelLoader.loadXMLSchema(ModelLoader.java:374)
    at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:167)
    at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:113)
    at org.jvnet.jaxb2.maven2.XJC2Mojo.runXJC(XJC2Mojo.java:1119)
    at org.jvnet.jaxb2.maven2.XJC2Mojo.execute(XJC2Mojo.java:720)
...
Run Code Online (Sandbox Code Playgroud)

mvn -v:

# mvn -v
Apache Maven 2.2.1 (r801777; 2009-08-06 14:16:01-0500)
Java version: 1.6.0_21
Java home: /usr/java/jdk1.6.0_21/jre
Default locale: en_US, platform encoding: UTF-8 …
Run Code Online (Sandbox Code Playgroud)

java maven-2 classcastexception jaxb2

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

FB.event.subscribe('comment.create')不起作用

我想在用户使用社交插件发表评论时收到通知.代码如下:

<fb:comments href='someurl' width='400'></fb:comments>
FB.Event.subscribe('comment.create', function(response)
{
 alert(response);
}
Run Code Online (Sandbox Code Playgroud)

很简单,但它不起作用.有人可能有错误吗?从我的在线研究来看,似乎通知没有真正的一致性.有时候它有效,有时则不然.

facebook

6
推荐指数
1
解决办法
5441
查看次数

问题使用Spring MVC中的JAXB注释对Jackson进行反序列化

我在调用服务时让杰克逊正确地将json反序列化为一个对象(特别是我们使用Jackson的能力来使用JAXB注释,因为我们也希望服务使用XML).我正在使用Spring MVC,我正在使用RestTemplate类来调用服务.

这是我为junit设置MappingJacksonHttpMessageConverter的地方:

ObjectMapper jsonMapper = new ObjectMapper();
AnnotationIntrospector introspector = new JaxbAnnotationIntrospector();
jsonMapper.getDeserializationConfig().setAnnotationIntrospector(introspector);
jsonMapper.getSerializationConfig().setAnnotationIntrospector(introspector);
jsonMapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL);
MappingJacksonHttpMessageConverter jacksonConverter = new MappingJacksonHttpMessageConverter();
jacksonConverter.setObjectMapper(jsonMapper);
List<HttpMessageConverter<?>> converters = new ArrayList<HttpMessageConverter<?>>();
converters.add(jacksonConverter);
template.setMessageConverters(converters);
Run Code Online (Sandbox Code Playgroud)

我这样称呼服务:

HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.set("Accept", "application/json");
HttpEntity<String> requestEntity = new HttpEntity<String>(requestHeaders);
ResponseEntity<NamedSystem> responseEntity = template.exchange(baseURL + "/{NamedSystemId}", 
        HttpMethod.GET, requestEntity, NamedSystem.class, orgId1);
Run Code Online (Sandbox Code Playgroud)

我的NamedSystem课程设置如下:

@XmlRootElement(name = "NamedSystem", namespace = "http://schemas.abc.workplace.com/NamedSystem")
public class NamedSystem {
    private String id;
    private String name;
    private String description;
    private Set<NamedSystemAlias> aliases;
    private String href; …
Run Code Online (Sandbox Code Playgroud)

java serialization spring-mvc jaxb jackson

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

如何轻松测试代码?

我正在通过阅读"Head First Java"并完成所有的谜题和例证来学习Java.在书中他们建议编写TestDrive类来测试我编写的代码和clases,这是一个非常简单的事情,但是通过这样做我认为我无法完全测试我的代码,因为我正在编写测试代码知道我想得到什么,我不知道它是否有任何意义,但我想知道是否有任何方式以一种简单的方式测试我的代码,它告诉我什么是不正常的.谢谢.

java testing unit-testing code-testing

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

使用Java Collections比较和排序不同类型的对象

如何使用java Collections比较和排序不同类型的对象.Below是用例:例如DOG,MAN,TREE,COMPUTER,MACHINE - 所有这些不同的对象都有一个共同的属性,如"int lifeTime".现在我想根据lifeTime属性来命令这些对象

谢谢

java sorting collections

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

如何更改一堆 Java 可序列化类的包

我想在我的应用程序中更改多个类的包。一个不错的 eclipse redactor 很好,但我的一些类是可序列化的,我需要支持跨版本兼容性。

关于如何做到这一点的任何想法?可以自动/半自动完成吗?

java serialization

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

注释控制器中的动态命令类

从Spring MVC 3开始,AbstractCommandController不推荐使用,因此您无法再在其中指定命令类setCommandClass().而是在请求处理程序的参数列表中对命令类进行硬编码.例如,

@RequestMapping(method = RequestMethod.POST)
public void show(HttpServletRequest request, @ModelAttribute("employee") Employee employee)
Run Code Online (Sandbox Code Playgroud)

我的问题是我正在开发一个允许用户编辑通用bean的通用页面,因此在运行时之前不知道命令类.如果变量beanClass包含命令类,则AbstractCommandController只需执行以下操作,

setCommandClass(beanClass)
Run Code Online (Sandbox Code Playgroud)

由于我不能将命令对象声明为方法参数,有没有办法让Spring绑定请求参数到请求处理程序主体中的泛型bean?

java spring spring-mvc

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

使用 Maven 生成类路径文件

我想从 pom.xml 依赖项生成一个类路径文件。我需要它,所以在测试期间我有所有依赖项的类路径(稍后打包成一个包)

maven-dependency-plugin不适合我有两个原因:

  • 它生成存储库中文件的路径,因此要使用其他模块,它们首先需要install为它们运行阶段(我希望有类似的路径/some/root/othermodule/target/classes
  • 它不包含工件自己的路径(target/classes),这意味着我需要稍后在代码中添加它,这很尴尬

所以我正在寻找另一个插件(或如何正确运行maven-dependency-plugin

plugins dependencies maven-2

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