0

私のタスクは、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警告[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(ネイティブメソッド)で
    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---
ObjectName:jboss.esb:deployment = FtpServerExample.esb
状態:失敗
理由:java.lang.RuntimeException:java.lang.NullPointerException
私は依存しています:
jboss.esb:deployment = jbossesb.esb

---問題の根本的な原因であるMBEANS---
ObjectName:jboss.esb:deployment = FtpServerExample.esb
状態:失敗
理由:java.lang.RuntimeException:java.lang.NullPointerException
私は依存しています:
jboss.esb:deployment = jbossesb.esb
4

2 に答える 2

3

これは、scheduleidref「cron-schedule」を定義せずに使用しようとしたことが原因だと思います。

<ftp-listener name="FtpGateway" busidref="helloFTPChannel"
maxThreads="1" is-gateway="true" scheduleidref="cron-schedule" />

これはhttps://issues.jboss.org/browse/JBESB-3721によく似ています

于 2012-11-12T14:18:30.700 に答える