我知道有一些JAVA_OPTS设置为远程调试Java程序.
它们是什么,它们是什么意思?
有谁知道如何JSP在IntelliJ IDEA中调试?
当我在我的JSP文件中设置断点时,这些断点似乎永远不会生效.调试器永远不会命中它们.IDEA似乎认为断点是有效的.我确实看到一个红点放在我放置断点的线的左边.
我在的IntelliJ版面为已读在这个岗位是JSP文件必须在WEB-INF调试工作.
但后来我也读到,JSP用户无法直接访问web-inf下的文件.
我不确定谁是对的.
我用它ant在Eclipse中创建.jar文件.效果很好.
我有一个正在处理的.jar文件,希望代码在.jar文件中(它在.jar文件所在的目录中查找.properties文件) - 标准的Eclipse"Run"和"Debug"菜单执行main()指定Java类的方法......但它们是从包含已编译类文件的目录执行的,而不是jar文件.有没有办法改变这种行为,所以Eclipse从相应的.jar文件运行代码?
(我现在的解决方法是在外部运行.jar文件,暂停等待调试器,根据Dave Ray对我的其他问题的回答.)
所以我打算在Intellij Community Edition上调试我的Solr过滤器插件.在我使用此命令从命令提示符运行程序后
java -jar start.jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8983
Run Code Online (Sandbox Code Playgroud)
我用这个配置启动了我的Intellij调试器:
Transport : socket
Debugger mode : attach
Host : localhost
Port : 8983
Run Code Online (Sandbox Code Playgroud)
但是当我运行调试器时出现了这个错误:
Error running Debugger: Unable to open debugger port (localhost:8983):
java.io.IOException "handshake failed - connection prematurally closed"
Run Code Online (Sandbox Code Playgroud)
知道如何解决这个问题吗?
我想学习tomcat操作的内部并理解流程.
为此,我创建了一个servlet -
public class TestServlet extends HttpServlet {
//Breakpoint set on constructor
public TestServlet() {
}
}
Run Code Online (Sandbox Code Playgroud)
我在源查找目录中包含了tomcat源代码,并以调试模式启动了服务器.以下是调试器在断点处停止时的堆栈跟踪 -
Daemon Thread [localhost-startStop-1] (Suspended (entry into method <init> in TestServlet))
owns: StandardWrapper (id=39)
owns: StandardContext (id=40)
TestServlet.<init>() line: 12
NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not available [native method]
NativeConstructorAccessorImpl.newInstance(Object[]) line: 39
DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 27
Constructor<T>.newInstance(Object...) line: 513
Class<T>.newInstance0() line: 355
Class<T>.newInstance() line: 308
DefaultInstanceManager.newInstance(String) line: 138
StandardWrapper.loadServlet() line: 1144
StandardWrapper.load() line: 1088
StandardContext.loadOnStartup(Container[]) line: 5123
StandardContext.startInternal() line: 5407
StandardContext(LifecycleBase).start() line: 150
ContainerBase$StartChild.call() …Run Code Online (Sandbox Code Playgroud) 我们可以使用特定参数生成风暴罐.但是,如果我们需要在本地以及远程调试此项目(实际上是远程)?
如果它是简单的jar,我们可以调试.但是,这里我们使用以下命令部署jar: storm jar project.jar main_class_name
不确定我们如何部署风暴拓扑,以便我们可以在调试模式下进行风暴项目?
请查找更新的yaml文件,如下所示:
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
# …Run Code Online (Sandbox Code Playgroud) 该项目使用Ant作为其构建系统.我通过Ant运行它时可以调试项目吗?
我是新手。你能告诉我如何设置一个在 Docker 中运行的调试 Java 程序吗?
该项目是在 Maven 的帮助下构建的,然后 Docker 使用它*.war来运行程序。据我了解,IntelliJ 必须远程推送以进行调试。
docker-compose.yml :
# myapp (Wildfly + Keycloak + myapp)
myapp-myapp:
image: myapp/wildfly-myapp:wf11
container_name: myapp-myapp
depends_on:
- myapp-postgres
- myapp-mailhog
environment:
TZ : Europe/Paris
KEYCLOAK_URL: http://localhost:8080/auth
WILDFLY_PROXY_ADDRESS_FORWARDING: "true"
JAVA_OPTS:
DB_CONNEXION_URL: jdbc:postgresql://myapp-postgres:5432/myapp_db
DB_CONNEXION_URL_DELIMITER: "|"
DB_HOST: myapp-postgres
DB_NAME: ${DB_NAME}
DB_PASSWORD: ${DB_PASSWORD}
DB_USER: ${DB_USER}
KEYCLOAK_DB_CONNEXION_URL: jdbc:postgresql://myapp-postgres:5432/keycloak
KEYCLOAK_DB_CONNEXION_URL_DELIMITER: "|"
KEYCLOAK_DB_USER : keycloak
KEYCLOAK_DB_PASSWORD : keycloak
KEYCLOAK_DB_NAME : keycloak
KEYCLOAK_DB_HOST: postgres
APP_CLUSTER: "false"
JGROUPS_EXTERNAL_ADDRESS: 10.178.27.30
JGROUPS_TCP_EXTERNAL_PORT: 7600
JGROUPS_TCP_BIND_PORT: 7600
JGROUPS_DEFAULT_STACK: tcpping
JGROUPS_INITIAL_HOSTS: "10.178.27.30[7600]" …Run Code Online (Sandbox Code Playgroud) 我有一个典型的内部集群,带有一个登录节点和多个计算节点。首先,我使用以下参数运行了一个 JVM 实例,让我的 IntelliJ 调试器连接到它。
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
Run Code Online (Sandbox Code Playgroud)
这个登录节点有一个可公开访问的地址,我主要是通过 ssh 来启动作业。但是,当我尝试将 IntelliJ 调试器连接到此节点上的 JVM 实例时,连接只是对其计时,并且无法连接,而我的 JVM 实例确实以挂起模式启动,等待调试器连接到它。
更新: 最初的问题似乎是我无法访问服务器上的任何其他端口,除了用于 SSH 连接的端口 22。无论如何,我能够创建一个 SOCK5 代理,将 IntelliJ 配置为使用该代理,然后成功测试连接,如下所示:
调试器控制台上的输出显示 IntelliJ 能够成功访问指定主机名上的该端口,尽管使用的是 HTTP 请求而不是 JWP 请求。
但是,当我继续将调试器连接到同一个主机:端口组合时,我无法这样做并收到以下错误:
我也试过设置,suspend=n但无济于事。