我编写了一个小型服务类,它返回一个包含 1000 个字符串的列表。我正在使用 Spring Httpinvoker 来获取服务并阅读列表。如果列表中的元素数为 100,当我尝试 1000 时一切顺利,它会冻结直到有连接重置客户端是 JUnit 4 类,在同一台机器上使用 Spring runner,就像 Hessian 一样使用 Spring Remoting 类的协议。它们都是基于 HTML 的,但这是我能看到的唯一连接 RMI 和 JMS RMI(通过 Spring 远程处理)在相同的服务上运行良好 服务代码
public class DateServiceImpl implements DateService {
/* (non-Javadoc)
* @see com.successcharging.rmiexample.DateService#getDate()
*/
@Override
public Date getDate() {
return new Date();
}
@Override
public List<String> getBigList() {
List<String> listData = new ArrayList<String>();
for (int i = 0 ; i < 100;i++) {
listData.add(Math.random()+"");
}
return listData;
}
}
映射服务器端
<!-- The service to use this is the server side -->
<bean id="dateServiceServer" class="com.successcharging.rmiexample.server.DateServiceImpl" />
<!-- the http invoker protocol -->
<bean name="/DateServiceHttpInvoker"
class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
<property name="service" ref="dateServiceServer" />
<property name="serviceInterface"
value="com.successcharging.rmiexample.server.DateService" />
</bean>
客户端映射
junit 代码
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class DateServiceTest extends BaseTest {
@Resource
private DateService dateServiceHttpInvokerClient;
@Test
public void testDateServiceHttpInvoker() {
List<String> data = dateServiceHttpInvokerClient.getBigList(); //Here it is get stuck
data.add("My test");
System.out.println("HttpInvoker:"
+ data.size());
}
public DateService getDateServiceHttpInvokerClient() {
return dateServiceHttpInvokerClient;
}
public void setDateServiceHttpInvokerClient(
DateService dateServiceHttpInvoker) {
this.dateServiceHttpInvokerClient = dateServiceHttpInvoker;
}
}
有任何想法吗 ?