偏偏wwWcom.caucho.hessiancom却不管了,包含结目的com.caucho.hessian所有页面。

博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)博客分类:
似乎最近Hessian 很火?
昨天我用了,马上就喜欢上了他.
1- 整个jar很小,200多K,3.1版本的,当然,我下载的for java的版本.
2- 配置很简单,基本上不需要花什么经历就配置出来了
3- 功能强大,可以将soap抛开,也可以把EJB抛开,采用二进制来传递对象
4- 拥有多种语言支持,python c++
.net 甚至 flex 都可以做为client端
这里可以下载到for java的版本
任意JAVA的IDE新建一个JAVA WEB工程
将下载的.jar包引入工程中,创建一个接口,这个接口可以供客户端和服务器端使用如下:
public interface IBasic {
public String hello();
public Car getCar();
当然接口中用到的Car 这个类是自己定义的包含任何属性的标准JAVABEAN;
接下来我们就开始做service端的程序了:
public class BasicService implements IBasic {
private String hello= "Hello, world";
public String hello()
public Car getCar() {
Car car = new Car();
car.setColor("RED红色");
car.setLength("2400");
car.setName("HAHACHE");
服务器端的程序写好后,要让client能够通过http协议访问到我们的service还需要配置servlet,当然这个过程是很简单的
com.caucho.hessian.server.HessianServlet
home-class
study.hessian.BasicService
study.hessian.IBasic
只需要将上面的代码加入到你的WEB.XML文件中,当然包路径是你自己的路径而已.
这时服务器段的工作就已经全部完成了.
接下来我们在做client端的工作,client需要用到IBasic 这个接口,还需要用到 Car 这个类
可以做一个简单的测试:
public class BasicClient {
public static void main(String []args)
throws Exception
String url = "http://127.0.0.1:8099/common/hello";
HessianProxyFactory factory = new HessianProxyFactory();
Basic basic = (Basic) factory.create(Basic.class, url);
= basic.getCar();
System.out.println("Hello: " + basic.hello());
System.out.println("Hello: " + car.toString());
大功告成,启动我们的WEB服务器,然后在启动这个client的程序,是不是发现屏幕上输出了你想看到的结果!要是抛异常了怎么办?
不要急,检查下包路径,.xml文件的配置,没有什么神奇的地方.
我们离开了WSDL,离开了WSDD,也不需要AXIS,不需要什么W3C的大篇标准.
Hessian 简单就是美,实用就是强,好用就是王道!!!哈哈哈哈~~~
浏览 38632
论坛回复 /
(8 / 7985)
问下。如果A服务器做hessian的客户端,需要调用B服务器端的服务接口,客户端是怎么实现的,你上面的Demo中相当于客户端和服务器端在一个工程中,是可以拿到服务器端的API的(Basic),正常使用时无法拿到服务API的,那客户端怎么实现?这个API可以看着是双方的协议,如果你不告诉客户协议,客户端肯定无法实现了,或者说实现起来很困难了。
服务器端是不是用Hessian 实现的不知道,只有服务端的wsdl地址,在客户端能不能使用Hessian 调用服务?WSDL 那就是WEBSERVICE了,不能用hessian必须服务端也是HESSIAN才行
楼主,hessian传递的对象应该要序列化的,目前的程序跑起来确实有问题,将Car类进行序列化就没问题了。是的,没想到这篇帖子过了这么多年了,还有人回复!
浏览: 173657 次
来自: 重庆
一点不单纯 写道谢谢!之前一直用您的工具很成代码,很实用。谢谢 ...
空城旧梦已秋凉 写道求开源啊
上传到github嘛 大神 研 ...
上传到github嘛 大神 研究一下 nutz框架 ...
谢谢!之前一直用您的工具很成代码,很实用。
请问最新版在哪里下载啊?放出的链接还是旧版啊!
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'Caucho Resin 4 - 编程软件 - 北京环中睿驰科技有限公司
★& 您的当前位置:& > && > &Caucho Resin 4Caucho Resin 4&&&&& 睿驰科技为Caucho Resin软件的中国区授权代理商 &&
&&&&& Resin是CAUCHO公司的产品,对servlet和JSP提供了良好的支持,性能也比较优良,resin自身采用JAVA语言开发。是一个非常流行的支持servlets 和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1.1的WEB服务器。虽然它可以显示动态内容,但是它显示静态内容的能力也非常强,速度直逼APACHE SERVER。许多站点都是使用该WEB服务器构建的。  Resin也可以和许多其他的WEB服务器一起工作,比如Apache server和IIS等。Resin支持Servlets 2.3标准和JSP 1.2标准。熟悉ASP和PHP的用户可以发现用Resin来进行JSP编程是件很容易的事情。  Resin支持负载平衡(Load balancing),可以增加WEB站点的可靠性。方法是增加服务器的数量。比如一台SERVER的错误率是1%的话,那么支持负载平衡的两个Resin服务器就可以使错误率降到0.01%。
服务器平台:  Resin提供了最快的jsp/Servlets运行平台。在java和java&script的支持下,Resin可以为任务灵活选用合适的开发语言。Resin的一种先进的语言XSL(XML&stylesheet&language)可以使得形式和内容相分离。如果您选用jsp平台作为internet商业站点的支持,那么速度、价格和稳定性都是要考虑到的,Resin十分出色,表现更成熟,很具备商业软件的要求。而且,它是全免费的。从站点下载的就是完整版本。所以值得向您推荐!相对于tomcat3.1,后者更象是一个正在研究的项目。目前Resin可以支持sun的j2ee,而tomcat不能直接支持,而j2ee是基于java服务器端大系统的基础。&&JSP环境之服务器Resin安装Resin3&之后已经不在是一个简单的jsp容器,并且支持ejb,jta等企业功能。目前Resin4&(2010年后已经比较稳定)性能更是优秀。并且已经支持servlet&3.0标准.&pro版本是收费版本,支持负载均衡和文件缓存。很多大型门户网站都采用pro版本作为应用服务器.  tomcat目前版本6.x也已经发展成为一个快速稳定的轻巧的jsp容器。和Resin是不同的发展方向。tomcat6并不支持ejb,jta等高级功能,需要自己扩展,比较麻烦。但支持负载均衡。CAUCHO公司,还为Resin添加了php解析执行功能。能够运行php程序。但相对php的原生版本还是有一定差距。&Resin&普通版本和pro版本主要区别:&&&&& Resin&普通版本和pro版本主要区别是pro支持缓存和负载均衡。pro因为有强大的cache功能,独立作为web服务器处理静态页面性能都可以和apache有一比。但普通版本独立作为web服务器性能就要差一些。当然可以使用apache+Resin的方案借助apache的缓存功能提高性能。但负载均衡就是普通版不能比的了。
&您是第1265910位访客博客分类:
刚刚成功试过resin启动,默认的root是resin的doc和admin的一个index页面。
现在想移植一个tomcat的web实例到resin来。于是想找eclipse的resin插件,结果发现不支持resin3.1, 再找了找还真没找到了。
没办法, 看看怎样直接在eclipse中用命令行运行好了。这倒好, resin的主页上有提供这个方法的教学:
引用Starting Resin from within the IDE
Resin is started and stopped by the IDE. Console messages appear in the console window of the IDE.
IDE configuration value description
Classpath all of the jars in resin.home/lib, see Global Library|
Java argument -Djava.system.class.loader=com.caucho.loader.SystemClassLoader
Main class com.caucho.server.resin.Resin
Program argument -conf conf/development.conf See development.conf
Program argument -server-root /path/to/webapp The location of the web-app
[edit] Additional configuration
Some systems require additional configuration, indicated by Resin error messages.
IDE configuration value description
Classpath java.home/lib/tools.jar Needed for compiling java files
Java argument -Dresin.home=/usr/local/resin Needed if Resin cannot discover the value programmatically
整理一下,应该是这样的
resin运行需要指定三个参数:root、conf、resin.home,
而root和resin.home应当都是同一个位置,就是resin安装的根目录
而conf默认的是resin.home/conf/resin.conf, 这个会根据每个web应用不同,因此往往需要创建一个。
1) classpath中要把resin.home/lib下面的所有jar包添加进来
2)运行的主程序是com.caucho.server.resin.Resin
3)通过jvm参数指定resin.home,
-Dresin.home=/usr/local/
&&&& 主程序参数指定root和conf:-conf conf/development.conf
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& -server-root /path/to/webapp
4)添加jvm参数:-Djava.system.class.loader=com.caucho.loader.SystemClassLoader
经过我的实验, root实际上可以不指定。
这个conf比较重要, 官方的wiki推荐我们使用,我把内容贴出来,注意看里面的注释:
&resin xmlns="http://caucho.com/ns/resin"
xmlns:resin="http://caucho.com/ns/resin/core"&
&resin:set var="http.port" default="8080"/&
&resin:set var="log.level" default="fine"/&
&log path="stdout:"&
&logger name="" level="${Var['log.level']}"/&
&class-loader&
&tree-loader path="${resin.home}/lib"/&
&/class-loader&
&http server-id="" host="*" port="${Var['http.port']}"/&
&dependency-check-interval&2s&/dependency-check-interval&
&javac compiler="internal" args=""/&
&resin:import path="${resin.home}/conf/app-default.xml"/&
&resin:if test="${resin.isProfessional()}"&
&cache path="WEB-INF/work/cache" memory-size="8M"/&
&/resin:if&
&web-app-default&
&cache-mapping url-pattern="/" expires="5s"/&
&cache-mapping url-pattern="*.gif" expires="60s"/&
&cache-mapping url-pattern="*.jpg" expires="60s"/&
&allow-servlet-el/&
&/web-app-default&
&host id=""&
&web-app id="/"&&!--这里可以加你的host, 可能是像下面这样--&
&!--&web-app id='/myprojectName' document-directory="d:\myprojectName\webapp"& --&
&session-config&
&file-store&WEB-INF/work/sessions&/file-store&
&/session-config&
&/web-app&
里面加了些注释的地方,说的是如何设定web应用的context和path
这里面还可以设置日志级别以及resin启动的端口
对于log的设定可以参考:
实际上resin的log就是基于JDK logging interface
spiritfrog
浏览: 734616 次
来自: 长沙
非常好。。
你好,备份和还原到指定的目录的参数如何加呢?
简单明了,学习了,感谢分享!
写的很好,顶
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'博客分类:
今天搭个系统,用resin3启动,发现访问页面的时候一直报下面这个错误:
[ 09:03:49.359] java.lang.NullPointerException
[ 09:03:49.359]
at com.caucho.server.connection.RequestWrapper.isSecure(RequestWrapper.java:296)
[ 09:03:49.359]
at com.caucho.server.connection.RequestAdapter.getCookieName(RequestAdapter.java:463)
[ 09:03:49.359]
at com.caucho.server.connection.RequestAdapter.getSession(RequestAdapter.java:387)
[ 09:03:49.359]
at com.caucho.server.webapp.DispatchRequest.getSession(DispatchRequest.java:448)
[ 09:03:49.359]
at org.springframework.web.context.request.ServletRequestAttributes.updateAccessedSessionAttributes(ServletRequestAttributes.java:222)
[ 09:03:49.359]
at org.springframework.web.context.request.AbstractRequestAttributes.requestCompleted(AbstractRequestAttributes.java:48)
[ 09:03:49.359]
at org.springframework.web.context.request.RequestContextListener.requestDestroyed(RequestContextListener.java:87)
[ 09:03:49.359]
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:197)
[ 09:03:49.359]
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265)
[ 09:03:49.359]
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273)
[ 09:03:49.359]
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682)
[ 09:03:49.359]
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:743)
[ 09:03:49.359]
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:662)
[ 09:03:49.359]
at java.lang.Thread.run(Thread.java:619)
查了一下有个人这么说的
&!-- action交由Spring管理 scope=session即一个请求产生一个新的action实例
使用listener形式报错!原因可能是resin3不支持或达不到sevlet version2.4规范
--&&&
但是不知道是不是真的,没时间验证,再查了一个帖子说在tomcat下面没问题,果真我换回tomcat6,还真的运行正常了,哇靠,神马。。。。。。。。。。。。。
A call to getSession() results in a NPE thrown from com.caucho.server.connection.RequestWrapper.isSecure
This issue has already been reported as 0002883 but was closed based on an assumption that the NPE was caused by application error. I am able to reproduce by simply submitting a request that should return a 404. As the Request is torn down, RequestWrapper is invoked and triggers the NPE.
Identical requests running on Jetty and running on Tomcat are handled without any error. At a minimum, I need this patched to throw a meaningful non-runtime Exception. Ideally, Resin would exhibit the same expected behavior as Tomcat and Jetty. My trace is pasted below:
以后有时间再慢慢研究了
参考链接:
http://bugs.caucho.com/view.php?id=3111
http://topic.csdn.net/u//2AFEA3FB-54F3-CAC3BF064C2.html
浏览: 196277 次
来自: 广州
gloryfuture_taiyuan 写道不能用啊,我用的是 ...
gloryfuture_taiyuan 写道不能用啊,我用的是 ...
不能用啊,我用的是cordova3.2,大侠能不能我指点指点呢 ...
不用拷贝jar,只需要按照2.1的格式生成类即可wsdl2ja ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 ichu国服b站不管了 的文章

 

随机推荐