Доступ к классу Kotlin из JSF XHTMLJAVA

Программисты JAVA общаются здесь
Гость
Доступ к классу Kotlin из JSF XHTML

Сообщение Гость »

Использование простого кода JSF в: src/main/web/webapp/... Java на: src/main/Java/...

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

public List getAllBeWhereWhen() {
List beWhereWhenList = beWhereWhenEJB.getAllBeWhereWhens();

return beWhereWhenList;
}

@Produces
public List getAllBeWhereWhens() {
Query beWhereWhensQuery = datastoreBeWhereWhen.find(BeWhereWhen.class);

List beWhereWhenList = beWhereWhensQuery.iterator().toList();

return beWhereWhenList;
}
Доступ к объекту с помощью MongoDB (с использованием Morphia) и отображение данных:

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

INFO  [com.bewherewhen.ejb.BeWhereWhenEJB] (default task-1) ***** 6.1 BeWhereWhenEJB beWhereWhenList size = 2
INFO  [com.bewherewhen.ejb.BeWhereWhenEJB] (default task-1) ***** 6.2 BeWhereWhenEJB beWhereWhenList getMobile = 447807059315
INFO  [com.bewherewhen.ejb.BeWhereWhenEJB] (default task-1) ***** 6.3 BeWhereWhenEJB beWhereWhenList getEventsList = 2
INFO  [com.bewherewhen.ejb.BeWhereWhenEJB] (default task-1) ***** 6.4 BeWhereWhenEJB beWhereWhenList getEventName = The National Motorcycle Museum
INFO  [com.bewherewhen.ejb.BeWhereWhenEJB] (default task-1) ***** 6.5 BeWhereWhenEJB beWhereWhenList getPeople size = 2
INFO  [com.bewherewhen.ejb.BeWhereWhenEJB] (default task-1) ***** 6.6 BeWhereWhenEJB beWhereWhenList getPeople = [People{userName='447807059315', eventDates=eStart='Thu Feb 01 12:00:00 GMT 2024', dateEnd='Thu Feb 01 13:00:00 GMT 2024'}, EventDates{dateStart='Sat Mar 02 12:00:00 GMT 2024', dateEnd='Sat Mar 02 13:00:00 GMT 2024'}, EventDates{dateStart='Tue Apr 02 13:00:00 BST 2024', dateEnd='Wed Apr 03 14:00:00 BST 2024'}]}, People{userName='447791667805', eventDates=[EventDates{dateStart='Wed May 01 13:00:00 BST 2024', dateEnd='Wed May 01 14:00:00 BST 2024'}]}]
JSF (также добавлен для доступа к Kotlin) в: src/main/web/webapp/...

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












#{usersKotlin.mobile}



JSF/XHML не вызывает класс Kotlin Controller:
Kotlin Controller: src/main/kotlin/com/. ../контроллер

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

@Named("usersKotlinController")
@RequestScoped
open class UsersKotlinController {
private val serialVersionUID = 1L

private val logger = KotlinLogging.logger {}

@Inject
private lateinit var usersKotlinEJB: UsersKotlinEJB

open fun getAllUsers(): List {

val usersList = usersKotlinEJB.getAllUsers()

return usersList
}
}
src/main/kotlin/com/.../ejb

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

@Stateless
@LocalBean
open class UsersKotlinEJB {
val datastoreBeWhereWhen: Datastore = Morphia.createDatastore(MongoClients.create(), "beWhereWhenDB")

private lateinit var usersList: List

open fun getAllUsers(): List {
val usersQuery = datastoreBeWhereWhen.find(com.bewherewhen.kotlin.entity.morphia.users.Users::class.java)

val usersList = usersQuery.iterator().toList()

return usersList
}
}
Сущность Kotlin: src/main/kotlin/com/.../entity

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

@Entity(value = "Users", useDiscriminator = false)
@Indexes(Index(options = IndexOptions(name = "users")))
@Embeddable
class Users : Serializable {
@Id
private val id: ObjectId? = null

private var mobile: String? = null
private var email: String? = null
private var salutation: String? = null
private var title: String? = null
private var forename: String? = null
private var surname: String? = null
private var house_name_numbe: String? = null
private var post_code_zip: String? = null
private var dateStart: Date? = null

@Reference
private var myEventDates: List? = null

fun Users() {
}

fun Users(
mobile: String?,
email: String?,
salutation: String?,
title: String?,
forename: String?,
surname: String?,
house_name_numbe: String?,
post_code_zip: String?,
dateStart: Date?,

myEventDates: List?
) {
this.mobile = mobile
this.email = email
this.salutation = salutation
this.title = title
this.forename = forename
this.surname = surname
this.house_name_numbe = house_name_numbe
this.post_code_zip = post_code_zip
this.dateStart = dateStart

this.myEventDates = myEventDates
}
}
Невозможно получить доступ к объекту Kotlin. Хотя Котлина не существует. Ошибок не отображается.
Посмотрел: Вызов Kotlin из Java
Я использую:

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

Jakarta EE 10.0.0
JDK 21.0.2
Kotlin 1.9.23
Gradle 8.2.1
JSF 4.0
PrimeFace (Jakarta) 13.0.6
MongoDB 7.0.2
Morphia 2.4.13
WildFly 31.0.1.Final
IntelliJ IDEA:

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

usr/main/webapp
...
usr/main/java
...
usr/main/kotlin
...
Kotlin JAR:

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

META-INF/NOTiFYmoto.kotlin_module
com/bewherewhen/kotlin/
com/bewherewhen/kotlin/entity/
com/bewherewhen/kotlin/entity/morphia/
com/bewherewhen/kotlin/entity/morphia/users/
com/bewherewhen/kotlin/entity/morphia/users/MyEventDatesKotlin.class
com/bewherewhen/kotlin/entity/morphia/users/UsersKotlin.class
com/bewherewhen/kotlin/controller/
com/bewherewhen/kotlin/controller/UsersKotlinController.class
com/bewherewhen/kotlin/controller/UsersKotlinController$Companion$logger$1.class
com/bewherewhen/kotlin/controller/UsersKotlinController$Companion.class
com/bewherewhen/kotlin/ejb/
com/bewherewhen/kotlin/ejb/UsersKotlinEJB.class
Как я могу получить доступ к «классам Kotlin» из JSF XHTML?
Кто-нибудь может использовать Kotlin Controller/EJB/Entities с «EE 10» ?

Подробнее здесь: https://stackoverflow.com/questions/780 ... -jsf-xhtml

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