में @AplplicationScoped बीन इंजेक्षन करने में असमर्थ मैंने जेएक्स-आरएस सेवा बनाई है जिसमें मैं एक आवेदन स्कॉप्ड बीन इंजेक्ट करना चाहता हूं। समस्या यह है कि बीन इंजेक्शन नहीं है। यह कैसे होता है और मैं इसे कैसे हल कर सकता हूं?जेएक्स-आरएस सेवा
JAX-आरएस सेवा:
@Path("room")
public class RoomService {
@Inject
GameController gc;
public RoomService() {}
@Path("create")
@GET
@Produces("application/json")
public String create() {
Room r = new Room();
gc.addRoom(r); // gc is null
return r.toJson();
}
}
आवेदन सेम
import java.util.ArrayList;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;
import pepuch.multuplayergameserver.entity.Game;
import pepuch.multuplayergameserver.entity.Room;
@Named
@ApplicationScoped
public class GameController {
private Game game;
public GameController() {
this.game = new Game(new ArrayList<Room>());
}
public boolean addRoom(Room room) {
if (!game.getRooms().contains(room)) {
return game.getRooms().add(room);
}
return false;
}
}
आपका 'गेम नियंत्रक' कोड संकलित नहीं होता है और '@ नामांकित' भी गायब है। कृपया अवांछित कोड न लिखें। इसके बजाय वास्तविक और परीक्षण कोड कॉपी करें। – BalusC
मैंने इसे ठीक कर दिया है। माफ़ कीजिये। मैंने 'नामांकित 'जोड़ा है लेकिन यह अभी भी काम नहीं करता है। हालांकि मैं 'नामित' केवल 'ईएल' के लिए है, इसलिए मैंने इसे पहले क्यों नहीं जोड़ा। – pepuch
क्यों @ नामित? कोई फर्क नहीं पड़ेगा। –