- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 Spring Boot 应用程序有一个 bean:
@Configuration
public class JmxRmiConfig {
@Value("${jmx.rmi.host:localhost}")
private String rmiHost;
@Value("${jmx.rmi.port:1099}")
private Integer rmiPort;
@Bean
public RmiRegistryFactoryBean rmiRegistry() {
final RmiRegistryFactoryBean rmiRegistryFactoryBean = new RmiRegistryFactoryBean();
rmiRegistryFactoryBean.setPort(rmiPort);
rmiRegistryFactoryBean.setAlwaysCreate(true);
return rmiRegistryFactoryBean;
}
@Bean
@DependsOn("rmiRegistry")
public ConnectorServerFactoryBean connectorServerFactoryBean() throws Exception {
final ConnectorServerFactoryBean connectorServerFactoryBean = new ConnectorServerFactoryBean();
connectorServerFactoryBean.setObjectName("connector:name=rmi");
connectorServerFactoryBean.setServiceUrl(String.format("service:jmx:rmi://%s:%s/jndi/rmi://%s:%s/jmxrmi", rmiHost, rmiPort, rmiHost, rmiPort));
return connectorServerFactoryBean;
}
}
我有两个单元测试,都注释如下:
@AutoConfigureMockMvc
@SpringBootTest
@Unroll
class ... extends Specification { ... }
(Unroll和Specification均来自spock.lang)
当我使用 maven/surefire 一起运行它们时,第二个测试类失败,并出现以下错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rmiRegistry' defined in class path resource [uk/ac/prospects/hedd/api/config/JmxRmiConfig.class]: Invocation of init method failed; nested exception is java.rmi.server.ExportException: internal error: ObjID already in use
它似乎正在为第二个类重新创建 RmiRegistry,而不破坏第一个类。
由于我还有其他没有 @AutoConfigureMockMvc 的测试可以一起正常运行,因此我的假设是 @AutoConfigureMockMvc 触发了问题。
如何让两个测试一起运行?
最佳答案
surefire 插件的以下附加配置为我们解决了这个问题。
<forkCount>1</forkCount>
<reuseForks>false</reuseForks>
不能 100% 理解问题,但我们添加了上述内容,因为测试套件在一个测试中模拟但在另一测试中正确配置的 Spring bean 之间变得困惑。这也解决了 RMI bean 问题。我认为这为每个测试提供了一个干净的 Spring 上下文。
关于java - 运行单元测试时 RmiRegistry 创建多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53815303/
这可以以某种方式追踪我的 rmiregistry 的状态吗?至少有一些类似记录器的信息会很好: [timestamp1] Object1 bound at localhost/OBJECT1 [tim
我正在研究 Java RMI。我在端口 2028 上运行我的 rmiregistry 没有什么问题,因为我已经使用它来运行我的测试程序。我可以使用其他端口运行我的程序,但我想知道,我们如何关闭在特定端
我正在开发一个在服务器上启动 rmiregistry 的基本应用程序: try { // create the registry and bind the name and o
我想设置 RMI 注册表的堆大小。是类似于java还是其他格式 最佳答案 rmiregistry-J-Xmx64m -J 将参数传递给 java 解释器 关于java - 设置 rmiregistry
我使用 ProcessBuilder 从我的代码运行 rmiregistry。如何将多个参数传递给 rmiregistry 进程? 到目前为止,我使用的是-J_xmx1024m。我知道需要传入一个附加
我最近发现了Java RMI API,并且我正在使用Rmiregistry来存储和获取远程对象。 然后,我发现我们可以使用LDAP来完成这项任务。我对这种方法很感兴趣,但经过一些研究,我对这两个选项感
我的 Spring Boot 应用程序有一个 bean: @Configuration public class JmxRmiConfig { @Value("${jmx.rmi.host:l
我正在尝试制作一个 Java RMI 客户端/服务器应用程序。我在启动我的应用程序的服务器端时遇到问题,因为当我尝试启动应用程序。 我从这里的简单教程开始:http://docs.oracle.com
当我尝试在服务器模式下执行 jMeter 时,我得到了这个异常: "Windows can not find 'rmiregistry'" 。我不知道如何解决这个问题,我搜索了一下,但我没有找到任何与
我们正在使用 Java RMI 开发一个客户端-服务器应用程序,为了进行测试,我们将使用一台计算机作为客户端和服务器。所以客户端和服务器应用程序都必须在同一台机器上调用rmiregistry,但显然它
我正在尝试通过批处理文件运行一个简单的 RMI 应用程序。我的老师给了我这些行,让我在记事本中编写并将其另存为 .bat : @cd %cd%\src @for/r %%a in (*.java) d
这可能吗? (假设Java 6) 一个人为的/简单的例子来说明我的观点是: 我有一个定义明确且永远不会改变的 RMI 接口(interface)(单个 JAR 文件,无模板参数) 在主机 X 上运行的
Oracle says 注册表是 a bootstrap naming service that is used by RMI servers on the same host to bind rem
对于服务器端的RMI,我们需要启动rmiregistry程序,还是直接调用LocateRegistry.createRegistry?如果两者都可以,各有什么优缺点? 最佳答案 它们是同一回事...r
将 Runtime.getRuntime().exec("start rmiregistry"); 放在 RMI 服务器中以自动启动 rmiregistry 是个好主意吗?或者你们还有其他建议吗? 最
请参阅this article的“RMI注册表问题”段落首先了解 Java Update 1.6.0_29 的背景。 如果我理解正确(我是德国人),更新会在 rmiregistry 中引入一个错误,该
我是一名优秀的程序员,十分优秀!