मेरे पास दो नियंत्रक हैं जो दोनों Play 2.0 में AKKA कलाकारों का उपयोग करते हैं। तदनुसार, दो परीक्षण मामले हैं जो इन दो एपीआई के खिलाफ परीक्षण करते हैं। हालांकि, जब 'प्ले टेस्ट' निष्पादित करते हैं, केवल परीक्षण मामलों में से एक सफल होगा, दूसरा विफल रहता है। अगर मैं उन्हें अलग से चलाता हूं, तो यह सफलतापूर्वक चलता है। मेरा झुकाव अभिनेता प्रणाली पहले परीक्षण से बंद कर दिया गया है। हालांकि, मैं प्ले 2 और अक्का के लिए नया हूं, यह सिर्फ मेरा अनुमान है। क्या आसपास कोई काम है?प्ले 2.0 अकका सिस्टम शट डाउन जब एकाधिक टेस्टकेस
public class PostA extends Controller {
// master actor for workers
public static ActorRef masterActorA = Akka.system().actorOf(new Props(new UntypedActorFactory() {
public UntypedActor create() {
return new PostAActorMaster(Config.NUMBER_OF_WORKER_ACTOR);
}
}), "PostAActorMaster");
public static Result postA() {
Map<String, String[]> dict = body.asFormUrlEncoded();
String paramField1 = dict.get("paramField1");
String paramField2 = dict.get("paramField2");
ProductInfo pInfo = new ProductInfo(paramField1, paramField2);
ProductMessage pMessage = new ProductMessage(pInfo);
return async(
Akka.asPromise(ask(masterActorA, pMessage, 15000)).map(
new Function<Object, Result>() {
...
}
));
}
public class PostB extends Controller {
// master actor for workers
public static ActorRef masterActorB = Akka.system().actorOf(new Props(new UntypedActorFactory() {
public UntypedActor create() {
return new PostBActorMaster(Config.NUMBER_OF_WORKER_ACTOR);
}
}), "PostBActorMaster");
public static Result postB() {
Map<String, String[]> dict = body.asFormUrlEncoded();
String paramField3 = dict.get("paramField3");
String paramField4 = dict.get("paramField4");
BillInfo bInfo = new BillInfo(paramField3, paramField4);
BillMessage pMessage = new BillMessage(bInfo);
return async(
Akka.asPromise(ask(masterActorB, pMessage, 15000)).map(
new Function<Object, Result>() {
...
}
));
}
Posta के AKKA मास्टर और कार्यकर्ता:
@Test
public void callPostA() {
running(testServer(2222, fakeApplication(inMemoryDatabase())), new Runnable() {
@Override
public void run() {
HttpPost httpPost = new HttpPost("http://localhost:2222/controllera");
....
}
});
}
@Test
public void callPostB() {
running(testServer(2222, fakeApplication(inMemoryDatabase())), new Runnable() {
@Override
public void run() {
HttpPost httpPost = new HttpPost("http://localhost:2222/controllerb");
....
}
});
}
दो नियंत्रकों निम्न हैं
public class PostAActorMaster extends UntypedActor {
private final ActorRef workerRouter;
public PostAActorMaster(final int nrOfWorkers) {
workerRouter = this.getContext().actorOf(new Props(PostAActorMaster.class).withRouter(new RoundRobinRouter(nrOfWorkers)));
}
public void onReceive(Object messageObj) {
try {
if (messageObj instanceof ProductMessage) {
// invoke worker to submit channel messaages
workerRouter.tell(messageObj, getSender());
} else if (messageObj instanceof ProductMessageResult) {
......
getSender().tell("OK");
}
} catch (Exception e) {
......
}
}
}
public class PostAActorWorker extends UntypedActor {
public void onReceive(Object messageObj) throws Exception {
if (messageObj instanceof ProductMessage) {
ProductMessage pMessage = (ProductMessage)messageObj;
ProductInfo pInfo = pMessage.getProductInfo();
log.info(pInfo.getProductId());
ProductMessageResult pr = new ProductMessageResult(pInfo);
PostA.masterActor.tell(pr, getSender());
}
}
}
प्रबंधित वस्तु:
public class ProductInfo extends Model {
@Id
private String productId;
...
}
क्या आपको कोई समाधान मिला? मेरे पास 2.2.4 – Isammoc
में एक ही समस्या है, इसी तरह के मुद्दों को भी देखा - 2.3 अक्का वसंत प्ले 2 अभिनेता प्रणाली का उपयोग कर। – JasonG
[त्रुटि] sbt.ForkMain $ ForkError: फ़ाइल [/Users/admin/Development/src/totes/app/target/scala-2.11/classes/controllers/AccountServiceController.class] में परिभाषित नाम 'accountServiceController' नाम से बीन बनाने में त्रुटि: बीन का इंस्टेंटेशन असफल रहा; नेस्टेड अपवाद है org.springframework.beans.BeanInstantiationException: बीन क्लास को तुरंत चालू नहीं कर सका [नियंत्रक। खाता सेवा नियंत्रक]: कन्स्ट्रक्टर ने अपवाद फेंक दिया; नेस्टेड अपवाद java.lang.IleglegalStateException: – JasonG