我的任务是配置 ftp 服务器并使用 Jboss ESB 从中读取文件。所以我在 jboss-esb.xml 中配置了 ftp 服务器,如下所示,我的服务类和错误如下
<providers>
<ftp-provider name="FTPprovider" hostname="192.168.1.6">
<ftp-bus busid="helloFTPChannel">
<ftp-message-filter username="durga" password="durga" passive="false"
directory="jboss" input-suffix=".dat"
work-suffix=".esbWorking" post-delete="false" post-suffix=".COMPLETE"
error-delete="false" error-suffix=".HAS_ERROR" />
</ftp-bus>
</ftp-provider>
<jms-provider name="JBossMQ" connection-factory="ConnectionFactory"
jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
jndi-URL="localhost">
<jms-bus busid="quickstartEsbChannel">
<jms-message-filter dest-type="QUEUE"
dest-name="queue/quickstart_helloworld_ftp_esb"
selector="source='fromHelloworldFTPAction'" />
</jms-bus>
</jms-provider>
</providers>
<services>
<service category="myCategory" name="myFileListener"
description="Hello World File Action (esb listener)">
<listeners>
<ftp-listener name="FtpGateway" busidref="helloFTPChannel"
maxThreads="1" is-gateway="true" scheduleidref="cron-schedule" />
<jms-listener name="helloWorldFileAction" busidref="quickstartEsbChannel"
maxThreads="1" />
</listeners>
<actions>
<action name="notificationAction" class="org.jboss.soa.esb.samples.quickstart.helloworldftpaction.test.Notifier">
<property name="okMethod" value="notifyOK" />
<property name="notification-details">
<NotificationList type="ok">
<target class="NotifyFTP">
<ftp URL="ftp://durga:durga@192.168.1.6/jboss"
filename="hello.txt" />
</target>
</NotificationList>
</property>
</action>
</actions>
</service>
</services>
package org.jboss.soa.esb.samples.quickstart.helloworldftpaction.test;
import org.jboss.soa.esb.actions.ActionLifecycle;
import org.jboss.soa.esb.actions.ActionLifecycleException;
import org.jboss.soa.esb.actions.ActionProcessingException;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.helpers.ConfigTree;
public class Notifier implements ActionLifecycle{
protected ConfigTree _config;
public Notifier(ConfigTree config) { _config = config; }
public Message notifyOK(Message message) throws ActionProcessingException {
String filePayload = "Hello World";
message.getBody().add(filePayload);
System.out.println("messags is ------------------------"+message.getBody().get());
return message;
}
@Override
public void destroy() throws ActionLifecycleException {
// TODO Auto-generated method stub
}
@Override
public void initialise() throws ActionLifecycleException {
// TODO Auto-generated method stub
}
}
创建 esb 服务,FtpServerExample.esb 11:16:53,019 INFO [AbstractFileGateway] 未指定值:max-millis-for-response - 这将是一个“仅入站”网关 11:16:53,045 WARN [ServiceController] 启动服务 jboss.esb 时出现问题:deployment=FtpServerExample.esb java.lang.RuntimeException: java.lang.NullPointerException 在 org.jboss.soa.esb.listeners.config.Configuration.create(Configuration.java:132) 在 org.jboss.soa.esb.listeners.config.JBoss4ESBDeployment.startService(JBoss4ESBDeployment.java:82) 在 org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289) 在 org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:616) 在 org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 在 org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 在 org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 在 org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 在 org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 在 org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978) 在 $Proxy0.start(未知来源) 在 org.jboss.system.ServiceController.start(ServiceController.java:417) 在 sun.reflect.GeneratedMethodAccessor9.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:616) 在 org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 在 org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 在 org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 在 org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 在 org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 在 org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 在 $Proxy44.start(未知来源) 在 org.jboss.soa.esb.listeners.config.JBoss4ESBDeployer.start(JBoss4ESBDeployer.java:432) 在 org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025) 在 org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819) 在 org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) 在 sun.reflect.GeneratedMethodAccessor58.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:616) 在 org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 在 org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 在 org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) 在 org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 在 org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) 在 org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 在 org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 在 org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 在 org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 在 $Proxy9.deploy(未知来源) 在 org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421) 在 org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:610) 在 org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263) 在 org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274) 在 org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225) 引起:java.lang.NullPointerException 在 org.jboss.soa.esb.schedule.ScheduleProvider.getSchedule(ScheduleProvider.java:165) 在 org.jboss.soa.esb.schedule.ScheduleProvider.addListener(ScheduleProvider.java:83) 在 org.jboss.soa.esb.listeners.config.ScheduleProviderFactory.createInstance(ScheduleProviderFactory.java:65) 在 org.jboss.soa.esb.listeners.config.Configuration.create(Configuration.java:116) ... 47 更多 11:16:53,048 错误 [URLDeploymentScanner] 不完整的部署列表: --- MBean 等待其他 MBean --- 对象名:jboss.esb:deployment=FtpServerExample.esb 状态:失败 原因:java.lang.RuntimeException:java.lang.NullPointerException 我依赖: jboss.esb:部署=jbossesb.esb --- MBean 是问题的根本原因 --- 对象名:jboss.esb:deployment=FtpServerExample.esb 状态:失败 原因:java.lang.RuntimeException:java.lang.NullPointerException 我依赖: jboss.esb:部署=jbossesb.esb