`
zcyjbyb
  • 浏览: 23670 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

学习hessian碰到的问题

阅读更多
      最近学习hessian,没想到刚开始就碰到解决不了的事情,一个helloworld都没弄出。以下是相关代码:
新建web project为hessian,将hessian-4.0.7.jar导入,服务端有接口Hello和实现HelloImpl,客户端测试代码ClientTest(客户端与服务端为同一project)以及web.xml配置如下:
   Hello.java:
 
package server;

public interface Hello {
      public void say(String str);
}
   

   HelloImpl.java:
 
package server;

public class HelloImpl implements Hello {
       @Override
       public void say(String str) {
              System.out.println("hello," + str + "!");
       }
}
    

   
package client;
import server.Hello;
import com.caucho.hessian.client.HessianProxyFactory;

public class ClientTest {
	public static void main(String [] args){
		String url = "http://localhost:8080/hessian/hello";
		HessianProxyFactory factory = new HessianProxyFactory();
		try{
			Hello hello = (Hello) factory.create(Hello.class,url);
			hello.say("hessian");
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}
    

    web.xml:
   
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	
	<servlet>  
	    <servlet-name>hello</servlet-name>  
	    <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>  
	    <init-param>  
	        <param-name>service-class</param-name>  
	        <param-value>server.Hello</param-value>  
	    </init-param>  <!--init-param里可以做哪些相关配置-->
	</servlet>  
	
	<servlet-mapping>  
	    <servlet-name>hello</servlet-name>  
	    <url-pattern>/helloworld</url-pattern> <!--该项配置有何用?--> 
	</servlet-mapping> 
	
</web-app>
   
  
问题:将hessian发布后,测试ClientTest后就出现com.caucho.hessian.client.HessianConnectionException异常,url(http://localhost:8080/hessian/hello)中应该没错吧,hessian为应用名,hello为<servlet-name>中配置,具体异常如下:
com.caucho.hessian.client.HessianConnectionException: HessianProxy cannot connect to 'http://localhost:8080/hessian/hello
	at com.caucho.hessian.client.HessianURLConnection.sendRequest(HessianURLConnection.java:139)
	at com.caucho.hessian.client.HessianProxy.sendRequest(HessianProxy.java:283)
	at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:170)
	at $Proxy0._hessian_getAttribute(Unknown Source)
	at com.caucho.hessian.client.HessianProxyFactory.create(HessianProxyFactory.java:374)
	at client.ClientTest.main(ClientTest.java:12)
Caused by: java.io.FileNotFoundException: http://localhost:8080/hessian/hello
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1296)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1290)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:944)
	at com.caucho.hessian.client.HessianURLConnection.sendRequest(HessianURLConnection.java:122)
	... 5 more
Caused by: java.io.FileNotFoundException: http://localhost:8080/hessian/hello
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1239)
	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
	at com.caucho.hessian.client.HessianURLConnection.sendRequest(HessianURLConnection.java:109)
	... 5 more

还请各位路过指点一下小弟,感谢!!!
分享到:
评论
4 楼 lxf1989 2015-01-22  
czltx224 写道
改成http://localhost:8080/hessian/helloworld 试试

应该是你调用的URL写错了,我也碰到了跟你同样的问题,现在解决了
3 楼 zhuchaofengboy 2013-03-06  
我也遇到这样的问题,还没解决呢?你解决了没有啊!
2 楼 czltx224 2013-01-24  
改成http://localhost:8080/hessian/helloworld 试试
1 楼 lhy5201314 2011-10-18  
<url-pattern>/helloworld</url-pattern> <!--该项配置有何用?-->   
这项应该配置为 <url-pattern>/hello</url-pattern>

相关推荐

Global site tag (gtag.js) - Google Analytics