1.自定义实体向外提供webservice接口的步骤
在下面这个例子中我们将在数据库中创建一张表并提供一个通过webservice修改表的方法
1.1表结构简单定义为:
CREATE TABLE [dbo].[MyBook]( [bookid] [bigint] NOT NULL, [bookname] [varchar](500) NULL, CONSTRAINT [PK_MyBook] PRIMARY KEY CLUSTERED ( [bookid] ASC )
1.2 在\service.xml中
<?xml version="1.0"?> <!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 5.2.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_5_2_0.dtd"> <service-builder package-path="com.ext.portlet.mybook"> <namespace>MyBook</namespace> <entity name="MyBook" local-service="true" remote-service="true"> <column name="bookid" type="long" primary="true" /> <column name="bookname" type="String" /> </entity> <exceptions> <exception>BookEntryName</exception> </exceptions> </service-builder>
1.3 执行 ant build-service
Open the generated file MyBookServiceImpl.java. if your entity name is ‘MyEntity’ in service.xml the generated class name will MyEntityServiceImpl.java
1.4 打开自动生成 MyBookServiceImpl.java (当然你的entity名是MyEntity,这里生成的类名就是MyEntityServiceImpl.java )
public MyBook addBook(String bookName) throws PortalException, SystemException { MyBook mybook = null; long bookId = CounterLocalServiceUtil.increment(MyBook.class.getName()); mybook = MyBookUtil.create(bookId); mybook.setBookname(bookName); return MyBookUtil.update(mybook, false); }
1.5 执行 ant build-wsdd 将会生成webservice层的代码
2 liferay webservice的调用
2.1在liferay环境中 启用webservice
liferay中使用的是 Apache Axis 生成的 webservice,这个默认的配置在 /portal/tunnel-web/ docroot/WEB-INF文件夹中的server-config.wsdd。在浏览器中 使用 http://127.0.0.1:8080/ tunnel-web/axis就可以看到SOAP services的列表。
要远程连接service,这个域名或ip必须被允许,而这个就需要在 portal-ext. properties文件中配置:
axis.servlet.hosts.allowed=127.0.0.1,SERVER_IP axis.servlet.https.required=false
这段代码显示能够连接到Axis servlet 的ip地址,你也可以设置为 空 ,允许所有的ip
2.2使用 webservice 的简单例子
2.2.1 保证http://127.0.0.1:8080/tunnel-web/axis 能查看到service列表
2.2.2 连接wsdl , 点击任何service的wsdl 这里使用User Service wsdl 为例( http://127.0.0.1:8080/tunnel-web/axis/Portal_UserService?wsdl)
2.2.3 使用eclipse或netbeans 可以根据Wsdl生成调用 代码
2.2.4 下面是一个调用例子
public class LiferayUserServiceClient { public static void main(String[] args) { try { UserServiceSoapServiceLocator locatorUser = new UserServiceSoapServiceLocator(); UserServiceSoap soapUser = locatorUser. getPortal_UserService("http://abc:abc@127.0.0.1:8080/tunnel-web/secure/axis/Portal_UserService"); UserSoap soapUserModel = soapUser.getUserById(10806); System.out.println(" getEmailAddress:" + soapUserModel.getEmailAddress()); } catch (Exception e) { e.printStackTrace(); } } }
主要参考:http://arvindm.com/2010/03/23/web-services-in-liferay/
转载请注明出处:http://nilm61.iteye.com/
相关推荐
【Liferay Webservice 教程】:通过Liferay Webservice,开发者可以轻松地为Liferay Portal创建服务,使得远程系统能够与Liferay中的portlet进行交互。以下是一个详细的步骤指南,教你如何利用Liferay Service ...
6. **API使用**:使用Liferay Portal客户端库时,开发者需要熟悉其提供的API,了解如何创建服务代理,如何执行调用,以及如何处理返回的结果。通常,这些API会封装HTTP请求和响应,提供更友好的编程模型。 7. **...
Liferay支持通过Web服务(WebService)接口来发布和管理内容。此外,文档提到了Liferay Web Proxy Portlet,该Portlet可以用来在Liferay门户中嵌入其他网站或应用。 ### Liferay Web服务器和环境配置 文档中提到了...
标题和描述概述的知识点主要集中在Liferay的单点登录(Single Sign-On,SSO)、WebService、JSON API以及系统集成方面。下面将详细展开这些知识点,包括它们的基本概念、实现方式和应用场景。 ### 单点登录(SSO)...
在Liferay Portal中,Web服务的使用是一个关键功能,它允许开发者通过远程接口与平台进行交互。本篇文章将深入探讨如何在Liferay中调用Web服务,并解释相关的配置和安全设置。 首先,当你启动Liferay门户后,在本地...
在本场景中,我们关注的是使用Liferay的Web Service Client来通过Java程序添加用户,并在Liferay门户页面上展示这些用户。Liferay是一个开源的企业级内容管理和数字体验平台,它提供了丰富的API和Web服务接口供...
Portlet是Liferay Portal的核心组件,通过使用Liferay Plugins SDK可以创建Javaportlet或JSR-286portlet。开发过程中,需要编写portlet的MVC控制器,实现视图展示和业务逻辑处理。同时,可以使用Freemarker或JSP作为...
基础篇(3~4章)首先讲解了Activiti Modeler、Activiti Designer两种流程设计工具的详细使用,然后详细讲解了BPMN2.0规范;实战篇(5~14章)系统讲解了Activiti的用法、技巧和最佳实践,包含流程定义、流程实例、...