Код: Выделить всё
org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available in __HK2_Generated_0 for injection at SystemInjecteeImpl(requiredType=StatisticsService,parent=Statistics,qualifiers={},position=-1,optional=false,self=false,unqualified=null,1396379968)
Код: Выделить всё
@Path("/stats")
public class Statistics {
@Inject
private StatisticsService statisticsService;
@GET
@Path("/general")
@Produces(MediaType.APPLICATION_JSON)
public Response getStatistics() {
if (statisticsService == null) {
return Response.serverError().entity("StatisticsService not initialized").build();
}
try {
StatsGeneral stats = statisticsService.getGeneralStatistics();
return Response.ok().entity(stats).build();
} catch (Exception e) {
e.printStackTrace();
return Response.serverError().entity("Error fetching statistics: " + e.getMessage()).build();
}
}
}
< /code>
Service: < /p>
public class StatisticsService {
@Inject
private StatsGeneralRepository statsGeneralRepository;
public StatsGeneral getGeneralStatistics() {
StatsGeneral stats = statsGeneralRepository.findById(1);
if (stats == null) {
throw new WebApplicationException("Statistics not found - contact the support server!", Response.Status.NOT_FOUND);
}
return stats;
}
}
< /code>
Repository: < /p>
public class StatsGeneralRepository {
@Inject @PrivateDB
private EntityManager em;
public StatsGeneral findById(Integer id) {
return em.find(StatsGeneral.class, id);
}
public List findAll() {
return em.createQuery("SELECT s FROM StatsGeneral s", StatsGeneral.class).getResultList();
}
}
< /code>
EntityManagerProducer: < /p>
@ApplicationScoped
public class EntityManagerProducer {
@PersistenceContext(unitName = "private")
private EntityManager privateEntityManager;
@PersistenceContext(unitName = "public")
private EntityManager publicEntityManager;
@Produces @PrivateDB
public EntityManager getPrivateEntityManager() {
return privateEntityManager;
}
@Produces @PublicDB
public EntityManager getPublicEntityManager() {
return publicEntityManager;
}
}
< /code>
мои зависимости (gradle): < /p>
dependencies {
// Use JUnit Jupiter for testing.
testImplementation(libs.junit.jupiter)
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
compileOnly("org.projectlombok:lombok:1.18.24")
annotationProcessor("org.projectlombok:lombok:1.18.24")
// This dependency is used by the application.
implementation(libs.guava)
implementation("org.jetbrains.kotlin:kotlin-stdlib:1.8.0")
// Jersey components - standardize on 3.1.3 version
implementation("jakarta.ws.rs:jakarta.ws.rs-api:3.0.0")
implementation("org.glassfish.jersey.core:jersey-server:3.1.3")
implementation("org.glassfish.jersey.containers:jersey-container-servlet:3.1.3")
implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.3")
implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.3")
// Jersey-CDI integration
implementation("org.glassfish.jersey.ext.cdi:jersey-cdi1x:3.1.3")
implementation("org.glassfish.jersey.ext.cdi:jersey-cdi1x-ban-custom-hk2-binding:3.1.3")
// Jetty
implementation("org.eclipse.jetty:jetty-server:11.0.14")
implementation("org.eclipse.jetty:jetty-servlet:11.0.14")
implementation("org.eclipse.jetty:jetty-servlets:11.0.15")
implementation("jakarta.servlet:jakarta.servlet-api:5.0.0")
// Hibernate
implementation("org.hibernate.orm:hibernate-core:6.2.6.Final")
implementation("jakarta.persistence:jakarta.persistence-api:3.1.0")
implementation("mysql:mysql-connector-java:8.0.33")
implementation("com.zaxxer:HikariCP:5.0.1")
implementation("org.hibernate:hibernate-hikaricp:5.6.15.Final")
// Other utilities
implementation("io.github.cdimascio:dotenv-java:3.0.0")
implementation("com.fasterxml.jackson.core:jackson-databind:2.15.2")
implementation("com.fasterxml.jackson.jakarta.rs:jackson-jakarta-rs-json-provider:2.15.2")
implementation("com.bucket4j:bucket4j-core:8.7.0")
implementation("io.jsonwebtoken:jjwt-api:0.11.5")
implementation("io.jsonwebtoken:jjwt-impl:0.11.5")
implementation("io.jsonwebtoken:jjwt-jackson:0.11.5")
// Jakarta EE APIs
implementation("jakarta.transaction:jakarta.transaction-api:2.0.0")
implementation("jakarta.enterprise:jakarta.enterprise.cdi-api:4.0.1")
// Weld (CDI implementation) - THESE ARE CRITICAL ADDITIONS
implementation("org.jboss.weld.se:weld-se-core:5.1.0.Final")
implementation("org.jboss.weld.servlet:weld-servlet-core:5.1.0.Final")
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... jetty-appl