问题标签 [javalin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javalin Websocket 客户端静默连接失败
我正在尝试创建一个与 Websocket 服务器通信的 Websocket 客户端。我的服务器代码似乎运行正常,因为我可以使用基于 Web 的客户端连接到它。但是我的 Java 实现只是默默地连接失败,然后在 send() 上抛出异常。
这是我尝试这个的临时装备:
更新:我发现问题是示例代码使用了已弃用的 DRAFT 版本。我更新了,现在可以让两个线程互相交谈。我已经更新了代码以显示工作版本。
我现在的一个问题是如何关闭服务器?
我将在下面包含 Websocket 构建器代码,但正如我所说,当我运行 main 并坐在循环中,服务器在后台线程中运行时,我可以ws://localhost:7000/websocket
使用https://websocketking.com/连接到它。
这是输出:
布拉德
PS:
我将连接更改为阻塞连接,并在客户端的 onClose() 方法中添加了打印原因,现在报告:
org.java_websocket.drafts.Draft_10@2025740c refuses handshake
老实说,我不知道草稿库在做什么,所以接下来会阅读。
kotlin - 为什么 Swagger 不检测可选的 JSON 属性?
我有以下课程:
有些属性不是必需的,因为它们要么可以为空(性别、国家/地区),要么具有默认值(createdAt)。
但是,生成的 swagger 文档如下:
因此,就文档而言,它表明这createdAt
是强制性的(这是不正确的)......
我正在使用 Kotlin、Javalin 和 OpenAPI ( io.javalin.plugin.openapi
) Javalin 集成。
我不知道我还需要什么才能让 OpenAPI 理解这createdAt
是可选的......
java - 使用 Javalin 将 java.util.Date 转换为 Java.sql.Date
我正在为大学使用 Java(Javalin 和 Maven)创建一个 Web 应用程序。
我们必须为电影预订制作一个网站,我正在努力找出如何正确转换日期,以便它们可以被 SQL 和 Java 读取。
我必须将日期值存储在数据库中,到目前为止,我只是将它们存储为字符串,但我希望它具有更具体的日期含义。它是使用 MVC 模型构建的。
这是我的会话模型中的代码。
那是我的 SessionsDao 文件中的代码。
最后这是我的 SQL 创建字段中的代码。
当我尝试创建一个新的电影会话时,这是控制台打印的错误。
我不确定如何正确转换日期属性。
任何有关如何进行的帮助或其他方法都会非常有帮助!
java - 从 javalin/java 中的文件格式化文本
我在我的 javalin 中做了一个获取,它从文本文件发回数据。
这是获取方法:
但这会在一大行文本中返回数据。
如何格式化此文本以使其看起来更好一些?
java - Javalin 网络服务器从另一个网络服务器加载配置
我得到了这个服务器,我在其中加载了几个不同的 jar 作为插件。其中 2 个 jar 使用 Javalin、Jetty 网络服务器来实现某些功能。目前我的插件由于某种原因io.javalin.core.JavalinConfig
从另一个 jar 加载,这会导致冲突,因为它还会抱怨无法找到 jar 文件中的 web 文件。
[13:46:30 WARN]:[ItemSorter] 从 Storefront v2.0-SNAPSHOT 加载了类 io.javalin.core.JavalinConfig,这不是该插件的依赖、软依赖或 loadbefore。
[13:46:30 WARN]:[ItemSorter] 插件 ItemSorter v0.01 在执行任务 221 java.lang.RuntimeException 时产生异常:路径为“/web”的静态资源目录不存在。根据您的设置,空文件夹可能不会被复制到类路径。在 io.javalin.http.staticfiles.JettyResourceHandler.getResourcePath(JettyResourceHandler.kt:59) ~[?:?] 在 io.javalin.http.staticfiles.JettyResourceHandler.addStaticFileConfig(JettyResourceHandler.kt:27) ~[?:?]在 io.javalin.core.JavalinConfig.addStaticFiles(JavalinConfig.java:122) ~[?:?] 在 io.javalin.core.JavalinConfig.addStaticFiles(JavalinConfig.java:115) ~[?:
加载我的 javalin 的片段:
加载 javalin 的其他插件的片段:
任何人有任何想法来分开他们的负载?
api - 验证 Javalin 请求时强制执行 Jackson JSON 字段名称
我正在尝试使用特定的 JSON 字段名称验证我的 Javalin POST 请求。字段名称必须与预期的字段名称匹配,我不确定如何做到这一点。
我期望的 JSON 字段名称是“someIds”,但即使 JSON 字段名称是其他名称(例如“notSomeIds”),Jackson 映射和验证也有效。
如果名称与验证停止不匹配,我该如何强制执行?
javascript - Javascript 未设置 Cookie
我正在尝试使用 Javascript 设置 cookie。这段代码一直在工作,直到最近,当我开始获取null
cookie 的价值时。我真的不确定我可以改变什么来导致这种情况。这是我的HTML
:
这是我的 Javascript。我添加了一条日志记录行来测试,但它从未打印到控制台,所以我想我可能在调用该函数时遇到问题。
任何帮助都非常感谢!我不知所措。
编辑:我正在使用 Javalin 在 Java 程序中访问我的 cookie,这就是我看到它们为空的地方。我在 Javalin 中呈现文档,然后尝试访问 cookie,然后得到 NullPointerException。这是Java代码:
vuejs2 - vue中嵌入模板
我想在 VueJS 中使用本地组件:
我的组件文件(清理了一下):
这个外部 Hero 模板用于列表迭代器:
但是,当我渲染卡片列表时,它只生成模板中第一个td
的列表:hvp
当我注释掉hpv
页面调用时,使用 Hero 模板中的所有 HTML 代码正确呈现。
我试图弄清楚我遗漏了哪一步,但找不到线索。最后一条信息:我使用 JavalinVue 来支持服务器端,而不是基于 nodejs 的 Vue CLI。我不知道它是否有任何影响,但可能很重要。
更新 1
在 IVO GELOV 发现多个根标签的问题后,由于我无法迁移到 Vue3,我尝试按照他的建议将其作为功能模板。我删除了模板并创建了render
函数:
虽然控制台显示渲染被正确调用,但结果是一样的:既没有渲染节点,也没有显示父 Hero 组件。我试图移动到不同的文件中,尝试了功能模板格式,但都没有奏效。
json - 用 Javalin 框架中的 kotlinx.serialization 替换 Jackson
我正在尝试用 Kotlinx.serialization 替换默认的Javalin JSON 序列化程序 Jackson。
该文档显示了如何使用 GSON 序列化程序来完成。
不幸的是,kotlinx 序列化程序具有不同的函数签名,我无法弄清楚如何传递参数。
序列化是可以的,但使用 decodeFromString 函数的反序列化需要传递映射函数给定的类型为targetClass
.
我被困在这里:
但我得到:Cannot use 'T' as reified type parameter. Use a class instead.
我也试过:
但我收到一个警告:Override by an inline function
和一个错误:Override by a function with reified type parameter
。
我是新手kotlin
,我正在努力理解这个覆盖有什么问题。
bootstrap-vue - 在 Javalin 和 Vue 中使用 webjars
我知道 Javalin 支持 Vue,我使用它没有问题。它很容易设置,我只需要调用config.enableWebjars()
Vue 就可以了,而且非常简单。但是,我想使用与 Javalin 没有深度集成的其他工具。即我想bootstrap-vue
用于高级组件。通常,当我通过 npm 和手动配置使用它时,添加对 Vue 的支持也很简单:
但是,这不能直接转换为 Javalin Vue 支持,因为如果我将上述行添加到顶层layout.html
:
我会得到一个错误:Uncaught SyntaxError: import declarations may only appear at top level of a module
。
我确信我错过了这一点,所以我将不胜感激任何帮助,如何做到这一点。