我打算使用supervisor运行多个进程,请在下面找到我的supervisord.conf文件:
[supervisord]
[program:bash]
command=xyz
stdout_logfile =/tmp/bash.log
redirect_stderr=true
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock
[unix_http_server]
file=/tmp/supervisor.sock ; path to your socket file
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
Run Code Online (Sandbox Code Playgroud)
我希望将名为bash的进程的stdout重定向到supervisor控制台,以便在我启动supervisor时使用
/usr/bin/supervisord
Run Code Online (Sandbox Code Playgroud)
命令,我可以看到子进程日志.我怎样才能做到这一点 ?我尝试将syslog用于stdout_logfile属性但它不起作用.
我必须承认我是Web服务的新手.当我使用CXF或Axis创建Web服务时,即使使用自定义bean在客户端和服务之间传递信息,对象也会自动编组和解组(我的意思是CXF或Axis创建所有必需的文件和类) .所以,即使我知道堆栈使用JAXB来编组和解组对象,但我不需要直接使用JAXB.
现在,我的问题是我是否需要直接使用JAXB,就Web服务而言,还是总是会为我处理编组和解组?
我正在使用像这样的Axis 1.4 webservice:
FooServiceLocator fooLocator = new FooServiceLocator();
fooLocator.getEngine().setOption("sendMultiRefs", false);
Foo foo = fooLocator.getFooService(new URL(soapServiceUrl));
Run Code Online (Sandbox Code Playgroud)
如何为连接建立和打开的连接设置超时?(与org.apache.commons.net.SocketClient setTimeout()和相似setSoTimeout())?
我发现了一个提示,建议设置这样的超时:
((Stub) sPcspService).setTimeout(soapTimeoutSecs * 1000);
Run Code Online (Sandbox Code Playgroud)
但是显式演员看起来更像是黑客,而不是官方的API使用.
点击源代码我找到了引用
DefaultCommonsHTTPClientProperties.CONNECTION_DEFAULT_SO_TIMEOUT_KEY
但我不知道我是否使用了这个Commons HTTP Client或另一个,也不知道如何应用这个选项.
注意:我找不到这个问题的直接答案,所以我将在下面记录我的解决方案作为答案.
我使用Axis 1.4和wsdl从wsdl生成了web服务的服务器端部分axistools-maven-plugin.Axis servlet映射到/services/*,服务配置WEB-INF/server-config.wsdd如下:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="TestService" style="document" use="literal">
<namespace>http://example.com/testservier</namespace>
<parameter name="className" value="com.example.TestServiceImpl"/>
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="Session"/>
</service>
</deployment>
Run Code Online (Sandbox Code Playgroud)
当我将此Web应用程序部署到Tomcat并http://localhost:8080/testservice/services返回访问
已部署服务的列表时.
现在......一些服务
- TestService(wsdl)
- TestService的
单击wsdl应该返回此服务的描述,但会导致以下错误页面:
AXIS错误
无法生成WSDL!
此位置没有SOAP服务
有了$AdminApp view <applicationName> -MapResRefToEJB它可以列出部署的EJB模块定义的资源引用。但是,该命令的结果是纯文本(另外可能是本地化的)。要提取该信息,必须解析此文本,这不是很方便。有没有办法使用 $AdminConfig 以结构化形式获取相同的信息(即应用程序的资源引用)?