开了账号这么多年了,今天第一次来这写东西。我今天要说说的写的第一个hessian服务。
这次我用的是spring+hessian来做的web服务。
首先建立这样一个服务要引入srping的一些包,主要有core,web,remoting还有一个重要的包叫aop。
就是因为没有这个包让的原本写好的程序莫名其妙的报错,找了半天才找到的。
首先发布服务我们要对外做一个接口:下面是代码
public interface IHelloHessian {
public String SayHello();
}
有了接口你总得通过接口做一些事吧,下面我们来做事
public interface IHelloHessian {
public String SayHello();
}
事是做完了。可是外部还是不能调用啊,spring要做的大量的工作就是配置,接下来我们来置applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="helloHessian" class="com.kane.HelloHessian">
</bean>
</beans>
这完了以后,你要向外中指定用那个吧,那就再来一个对外用的XML吧。
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 业务类 -->
<bean id="hessianService" class="com.kane.HelloHessian"/>
<!-- 远程服务 -->
<bean name="/helloHessian" class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service" ref="helloHessian"/>
<property name="serviceInterface">
<value>
com.kane.IHelloHessian
</value>
</property>
</bean>
</beans>
这好了,spring + hessian是通过servlet拦截实现的,那现在我们就要配web.xml文件了。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
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_3_0.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/config/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>Hessian</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Hessian</servlet-name>
<url-pattern>/hessian/*</url-pattern>
</servlet-mapping>
</web-app>
到现在为止你可以项目放到你的服务器上进行发布了。
我的文章到也就写完了。希望大家不要走弯路了。
分享到:
相关推荐
在Java服务器上,我们需要一个Hessian服务提供者,如Caucho的Hessian库,它可以将Java对象暴露为Hessian服务。开发者需要定义一个服务接口,并提供其实现。Hessian服务提供者会将这个接口转换为可以跨网络调用的二...
1. **配置Spring**:在Spring的配置文件中定义Hessian服务的bean,通过`<bean>`标签声明服务接口和其实现类,使用`hessian-proxy-factory-bean`来创建Hessian服务的代理。 2. **暴露Hessian服务**:通过Spring的`...
然后,你可以使用WCF(Windows Communication Foundation)来创建一个基于HTTP的Web服务,这个服务会暴露Hessian绑定。 在客户端,我们需要创建一个代理类,该类将与服务端通信。这可以通过使用`svcutil.exe`工具...
- **客户端**:在PHP代码中,使用`php-hessian`库创建一个客户端实例,指定服务器的URL和服务接口。 - **通信**:客户端通过Hessian协议发送请求到服务器,服务器接收到请求后执行对应的方法,并返回结果。 - **...
Hessian矩阵是数学中一个重要的概念,特别是在多元函数极值问题中,它扮演着关键性的角色。在这篇文章中,我们将详细介绍Hessian矩阵的定义、性质、应用以及与极值问题的关系。 定义:Hessian矩阵是指一个自变量为...
对于一个具有两个变量\( x_1 \)和\( x_2 \)的函数\( f(x_1, x_2) \),其Hessian矩阵\( H(f) \)定义为: \[ H(f) = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \...
主要是将《Flex第一步》里使用FDS数据传输改为使用Hessian来实现,一些地方做了些简单的修改。 关于Flex使用Hessian进行远程调用,请参考: Flex + Hessian 学习笔记(一) ...
在“Hessian(binary-RPC)相关Jar包资源.zip”这个压缩包中,包含的可能是一系列用于支持Hessian通信的Java库。这些Jar包可能包括: 1. `hessian.jar`:Hessian的核心库,包含了Hessian协议的实现和相关的工具类。 2...
在报告中,作者也计划描述一些符号,如[x]i 表示向量x的第i个元素,[A]i,j 表示矩阵A的第(i, j)个元素,1m表示m维的全1向量,sq(·)表示某个函数,vec(A)表示矩阵A的向量化形式,f表示目标函数,fi表示第i个样本的...
一个简单的例子学习hessian服务:服务端为Java,客户端为C#。 先要准备好C#和Java的第三方类库:http://hessian.caucho.com/ Hssiancharp.dll hessian-4.0.37.jar Hessian服务端(java) 打开eclipse...
本篇文章将针对 `nacos-hessian-rce.md` 文件中提及的一个远程代码执行(Remote Code Execution, RCE)漏洞进行详细分析。该文档由 Y4er.com 在 2023 年 6 月 8 日撰写。此漏洞主要涉及 Nacos 的 7848 端口使用 ...
这将启动一个Hessian服务,提供`add`方法供客户端调用。 3. **客户端调用**:在客户端,你需要创建一个`HessianClient`实例,指定服务器的URL,然后通过这个实例调用远程服务的方法。例如: ```php require_...
我们将演示在可以提供必要信息的情况下,如何在重新加权中考虑原始拟合的第一个非二次分量。 然后,我们将该方法应用于在5.02 TeV质子-质子(pp)和质子-铅(pPb)碰撞中dijet伪快速光谱的CMS测量。 测得的pp dijet...
已经解决了第一次连接报:com.caucho.hessian.client.HessianConnectionException: 500: java.io.EOFException
1. **创建服务提供者**: 创建一个实现了特定接口的Java服务类,这是服务的核心业务逻辑。 2. **配置服务元数据**: 在Spring配置文件中,定义服务提供者的bean,包括接口名、实现类、版本号等信息。 3. **启动服务...
算法的第一步是使用改进的三维中值滤波方法去除CT图像的噪声并进行平滑处理。中值滤波是一种非线性的滤波技术,它通过取邻域内像素值的中位数来替换中心像素值,能有效去除椒盐噪声,同时保持图像边缘信息。 由于CT...
京东服务框架的演进分为两个阶段:第一代服务框架和第二代服务框架。第一代服务框架于2012年初开始研发,基于开源的服务框架,使用zookeeper作为注册中心。然而,第一代服务框架存在一些不足之处,如客户端逻辑过多...
其中 \( x_1, x_2, \dots, x_n \) 是变量,\( \frac{\partial^2 f}{\partial x_i \partial x_j} \) 表示函数f关于第i个变量和第j个变量的二阶偏导数。在定义海森矩阵时,重要的前提是函数在考虑的点上至少是二次可微...