Неудовлетворенное положения обэлексии с Джерси и CDI (Weld) в приложении встроенного причалаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Неудовлетворенное положения обэлексии с Джерси и CDI (Weld) в приложении встроенного причала

Сообщение Anonymous »

Я строю приложение JAX-RS с Jersey, работающим на встроенной пристани. Я пытаюсь использовать CDI (Weld) для инъекции зависимости, но я получаю неудовлетворенную зависимость Exception при введении моего сервиса в класс ресурсов.

Код: Выделить всё

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")
}
У меня также есть файл beans.xml в src/main/resources/meta-inf с bean-discovery-mode = "all" .


Подробнее здесь: https://stackoverflow.com/questions/796 ... jetty-appl
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • RESTEasy + Weld (CDI) в файле WAR, развернутом на Jetty 11, похоже, не работает
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • RESTEasy + Weld (CDI) в файле WAR, развернутом на Jetty 11, похоже, не работает
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Пользовательская область Jakarta CDI не работает с ошибкой WELD-001303
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Quarkus CDI UnsatisfiedResolutionException — CDI не видит мой пакет
    Anonymous » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Quarkus cdi kembiedresolutionException - CDI не видит моего пакета
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»