J'essaie maintenant d'ajouter un PE simple dans mon application. Ce PE étend AbstractPE et remplace la méthode de sortie (ne rien faire) J'ai aussi révisé le fichier xml, l'ajout d'un haricot, comme suit:.Array Index Out Of Bounds lorsque S4 initie PE
<bean id="rogerpe" class="cnu.roger.FPActor.RogerPE">
<property name="keys">
<list>
<value>RawTransaction *</value>
</list>
</property>
</bean>
Mais, quand je tentais de lancer la plate-forme. Certaines exceptions se produisent.
Caused by: org.springframework.beans.BeanInstantiationException:
Could not instantiate bean class [cnu.roger.FPActor.RogerPE]:
Constructor threw exception; nested exception is java.lang.ArrayIndexOutOfBoundsException: -1
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:115)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877)
... 16 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:338)
at java.util.ArrayList.get(ArrayList.java:351)
at io.s4.processor.OverloadDispatcherGenerator.generate(OverloadDispatcherGenerator.java:209)
at io.s4.processor.AbstractPE.<init>(AbstractPE.java:126)
at cnu.roger.FPActor.RogerPE.<init>(RogerPE.java:22)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
... 18 more
Code de ce PE:
package cnu.roger.FPActor;
import java.util.Collections;
import java.util.List;
import io.s4.processor.AbstractPE;
class RogerPE extends AbstractPE
{
@Override
public void output()
{
// TODO Auto-generated method stub
}
}
Je confonds maintenant. Je ne sais pas quel tableau cela signifie. Toute aide est appréciée!
Dans le OverloadDispatcherGenerator.java
InstructionHandle returnInstruction = il.append(InstructionFactory.createReturn(Type.VOID));
for (int i = 0; i < targetInstructions.size(); i++) {
branchInstructions.get(i).setTarget(targetInstructions.get(i));
}
branchInstructions.get(branchInstructions.size() - 1)
.setTarget(returnInstruction);
for (BranchInstruction gotoInstruction : gotoInstructions) {
gotoInstruction.setTarget(returnInstruction);
}
la ligne 209 est: branchInstructions.get ....
Montrez-nous le code pour 'RogerPE' et une réponse suivra sûrement :-) – millhouse
le code est ajouté, thx. – Qinghao
Cette exception se produit toujours, même sans constructeur. – Qinghao