首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

「数字体验」Liferay数字体验平台(DXP)的好处

在这篇文章中,我们将挑选一些Liferay DXP的新功能,并对它们进行详细的探讨。 模块化: 这实际上意味着Liferay的每个模块(特性)现在都是联合的,可以从核心Liferay安装中分离出来。...架构在非常基础的层次上发生了变化,应用程序被划分为使用OSGi框架的不同包。这几乎改变了Liferay的所有工作方式。...您可以生产和消费您想要的服务 谁受益最大: 再次重申,更大规模的部署将受益最大。在DevOps管理的生态系统中,更容易排除故障并隔离出现故障的服务。...您将创建功能丰富并以惊人速度运行的应用程序。 谁受益最大: 每个人。谁不喜欢快速浏览体验呢! 覆盖EXT和Hook DXP现在提供了OSGi包/模块和服务的抽象实现。...最初,liferay的主要核心类只能通过EXT或hook覆盖。现在在Liferay 7中,所有东西都是一个包,你只需要覆盖你想要的包。这使得定制更快,并且只定制我们想要的。

1.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    现在该用 Java 12,还是坚持 Java 11?

    可能你会觉得这是一个无关紧要的问题,但对于那些需要在 JVM 中使用 Java 的开发者,或是比较看重 Java 新特性的开发者,这是一项十分重要的决策。这篇文章将和大家就这个问题进行相关的分析。...对未来的预测 如果已经阅读了上面的列表,并且你的代码和流程可以应对。这十分好,但更重要的是要明白,你也在限制未来进行改变的能力。...和相关的 maven 插件 OSGi bundle metadata tool Bytecode 工具(Byte buddy / ASM etc) 超过 100 个 jar 包依赖项 说了这么多,作者当然不是鼓励大家不进行升级...作为典型软件供应商的一个例子,Liferay 声明如下: Liferay 已决定不会对 JDK 的每个主要版本进行认证。我们将选择遵循 Oracle 的主导并仅认证标记为 LTS 的版本。...—— Liferay博客 总结 相信肯定已经有开发团队采用了新版本的 Java,但希望他们是经过思考判断之后做出的决定。

    81020

    sofa-ark类隔离技术分析调研

    不过坏处就是缺少了灵活性,业务方无法修改组件包的任何依赖。 OSGI技术 使用OSGI技术,用felix、karaf或者Jigsaw这样的容器对jar包进行暴露和隔离。...OSGI技术实际上是对代码进行了更高一级的抽象,将“模块”作为一个基本单位,用Bundle包对jar包再进行一级权限管理,将一些导入或导出的资源配置在Manifest文件里。...-- 打包插件时,排除和指定 artifactId 相同的包依赖 --> ...Ark Container可以被理解为OSGI中的那个守护进程,用来管理业务包和插件包,只不过Ark Container不是一个守护进程而只是一个启动类罢了。...在IDE中启动时,由于主类的静态代码块是会在容器启动之前就会加载一次的。

    1.8K31

    逃逸安全的模板沙箱(一)——FreeMarker(上)

    笔者前期主要是对 Liferay 的 FreeMarker 引擎进行了调试分析,故本文先以 FreeMarker 为例,梳理该模板引擎 SSTI 漏洞的前世今生,同时叙述自己的 Liferay FreeMarker...SSTI 漏洞踩坑历程及对 Liferay 安全机制的分析。...freemarker.template.utility包中存在三个符合条件的类,分别为Execute类、ObjectConstructor类、JythonRuntime类。...可以看出这是Liferay赋予模板沙箱的主要安全机制。 可以看到,重点在于如何找到暴露出的对象,其次思考如何利用这些对象绕过Liferay的安全机制。 我们在编辑模板时,会看到一个代码提示框。...至此,利用思路在 Liferay 的安全机制下全部惨败。Liferay 健全的黑白名单机制,从根源上限制了大多数攻击思路的利用,可谓是“攻不破”的铜墙铁壁。

    2.3K20

    maven依赖中scope=compile和provided区别

    在编译测试阶段,我们需要这个artifact对应的jar包在classpath中,而在运行阶段,假定目标的容器(比如我们这里的liferay容器)已经提供了这个jar包,所以无需我们这个artifact...那么最后我们要吧ProjectABC部署到Liferay服务器上了,这时候,我们到$liferay-tomcat-home\webapps\ROOT\WEB-INF\lib下发现,里面已经有了一个portal-impl.jar...做一个实验就可以很容易发现,当我们用maven install生成最终的构件包ProjectABC.war后,在其下的WEB-INF/lib中,会包含我们被标注为scope=compile的构件的jar...包,而不会包含我们被标注为scope=provided的构件的jar包。...:tomcat中也有servlet-api包,这样,发生了冲突 解决方法:添加provided,因为provided表明该包只在编译和测试的时候用,所以,当启动tomcat的时候,就不会冲突了,完整依赖如下

    2.7K20

    Dubbo 常见错误及解决方法

    排查步骤 访问注册中心的 Ops 系统,查询对应的服务是否有提供者列表;同时检查调用者应用所在服务器的日志(一般每种注册服务的客户端都会有对应的日志记录),查看是否有地址信息的推送/拉取记录。...超时的发生很可能意味着调用端或者服务端的资源(CPU,内存或者网络)出现了瓶颈,需要检查服务端的问题还是调用端的问题来排除GC抖动等嫌疑。 检查服务端的网络质量,比如重传率来排除网络嫌疑。...借助链路跟踪的分析服务(比如阿里的 ARMS,开源的 OpenTracing 系的实现 Zipkin、SkyWalking 等)来分析下各个点的耗时情况。...启动时 Configuration problem: Unable to locate Spring NamespaceHandler for XML schema ---- 表示 Spring 找不到...通常是 Dubbo 的 jar 包没有被引入,请添加对 Dubbo 的依赖;或者是 ClassLoader 隔离,查看是否有使用 OSGI 或其它热加载机制。

    1.9K20

    Dubbo框架常见问题

    配置的解析处理器。通常是 Dubbo 的 jar 包没有被引入,请添加对 Dubbo 的依赖;或者是 ClassLoader 隔离,查看是否有使用 OSGI 或其它热加载机制。 ?...(Ljava/util/Map;)V Dubbo 应用使用 ZooKeeper 作为注册中心,启动时发生该异常。...超时的发生很可能意味着调用端或者服务端的资源(CPU,内存或者网络)出现了瓶颈,需要检查服务端的问题还是调用端的问题来排除GC抖动等嫌疑。•检查服务端的网络质量,比如重传率来排除网络嫌疑。...10、Dubbo 应用使用 ZooKeeper 作为注册中心,启动时报该异常。...11、启动时服务是否注册检查,这种情况一般在预发环境遇到,有些业务部门的服务没有部署预发环境,会导致我们的应用在预发环境启动不了,启动时需要取消检查。

    85550

    Maven依赖Jar冲突排查及解决

    依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成了包版本冲突。...一级依赖中,后声明的依赖会覆盖先声明的依赖,并且如果是前面的版本低后面的版本高会显示冲突,反之却不会显示冲突; 解决冲突的方式 根据优先原则,把需要的版本放在路径最短的位置或最先声明 排除其他版本的依赖...在解决冲突的时候直接把红色的排除是不对的,因为红色的本身就是冲突时被忽略的版本。...,但遇到必须使用不同版本jar包时,就不行了 sofa-ark 用FatJar技术去实现OSGI的功能,jar包隔离原理上跟osgi一致,不过基于fat jar技术,通过maven 插件来简化复杂度,比较轻量...jar包里的包名,来达到解决冲突的目的。

    2K40

    【Java编程进阶之路 04】深入探索:Java类加载器与双亲委派 & 打破双亲委派桎梏

    5.3 使用Java Agent和Instrumentation API Java Agent是一种特殊的JAR文件,可以在JVM启动时或运行时被加载。...Java Agent是一个特殊的JAR文件,它包含一个特殊的类,即premain方法,它在JVM启动时被调用。使用Java Agent,我们可以在类被加载到JVM之前修改其字节码。...premain方法将在JVM启动时被调用,并且可以在类加载之前应用转换。...定义导出和导入的包:在你的bundle的manifest文件中,你需要定义哪些包应该被导出(供其他bundles使用)和哪些包应该被导入(从你的bundles中使用)。...使用OSGi类加载器:在OSGi环境中,你的代码将自动使用bundle的类加载器来加载类。

    20111

    虚拟机类加载机制

    使用java.lang.reflect包的方法对类进行反射调用的时候,如果类没有进行过初始化,则需要先触发其初始化。...当初始化一个类的时候,如果发现其父类还没有进行过初始化,则需要先触发其父类初始化。 当虚拟机启动时,用户需要指定一个要执行的主类,虚拟机会先初始化这个主类。...OSGi:灵活的类加载器架构 OSGi(Open Service Gateway Initiative)是OSGi联盟制定的一个基于java语言的动态模块化规范。...OSGi在java程序员中最著名的应用案例就Eclipse IDE,另外还有许多大型的软件平台和中间件服务器都基于或声明将会基于OSGi规范来实现。...OSGi的Bundle类加载器之间只有规则,没有固定的委派关系。

    71400

    模块化服务规范——OSGI

    这个框架实现了一个优雅、完整和动态的组件模型。应用程序(称为bundle)无需重新引导可以被远程安装、启动、升级和卸载(其中Java包/类的管理被详细定义)。...2、JAR文件规范粒度太粗,没有足够的约束力。运行期,如果这些第三方Jar包不存在,或者命名存在差异,或者提供了不同JAR包版本,则会出现各种不同结果。...3、由于Java EE平台规范没有针对Java package引入版本支持,这使得在同一企业应用中几乎不可能启用同一JAR包的不同版本。...很显然,这给维护工作带来挑战,毕竟升级或修改WAR包中的任何内容都可能会波及到整个WAR包。...这就要求,每次升级生产环境之前,都必须对整个WAR包的各个方面进行完整的回归测试,进而增加了不必要的维护成本,包括人力和物力成本。

    1.6K30

    OSGI开发web应用

    在左侧的包浏览面板中可以看到OSGi工程的结构,“Plug-in Dependencies”下是OSGi插件运行需要的组件,src目录下是自动生成的源代码,simplewebosgi.Activator...与普通Java工程所不同的是向导会生成“META-INF”目录以及其下的文件 MANIFEST.MF文件,此文件会随插件的发布一起被打到jar包中,定义了Bundle的标识、版本、名称、运行环境等内容。...右边是可视化的配置管 理器,在这里可以定义插件,配置插件运行所依赖的组件及需要导入的包,运行时环境,编译构建配置等。...  在工程中引入javax.servlet、javax.servlet.http、org.osgi.service.http这几个包,如下图所示 ?...现在虽然HTML页面文件有了,包也配置好了,但是还不能通过HTTP访问相应的页面,如果现在测试运行访问http://localhost:8080服务,浏览器会提示找不到页面,我们需要将页面注册到OSGi

    1.7K40

    OSGi的模块化和动态模块的好处

    1、减少复杂性 利用OSGi技术进行开发意味着软件包的开发:OSGI组件、软件包和模块。它们隐藏它们的内部实现,通过已经定义好的服务来和其他包进行通信,隐藏内部实现意味这以后可以自由更改实现。...已经有很多的开源项目都是通过OSGi来发布他们的jar包,而且商业库也开始使用现成的包。 3、现实情况 OSGi是一个动态框架。他可以更新正在运行的模块和服务。...7、透明性 软件包和服务在OSGi环境中是最高级的。管理API不但提供了对软件包内部状态的访问而且也也提供了如何去和其他包做对接。...相比之下,OSGi软件包之间的预依赖可以准确的知道是哪个软件包提供的类,通过减少搜索是启动速度提高的一个重要因素。...很多开发者都想运行OSGi,但是他们的公司并不允许他们部署通常的JAR包。因此,这些开发者可以将某个OSGi框架包括在WAR文件中,并将软件包从文件系统或通过网络装载到应用服务器中来运行。

    1.6K10

    OSGi 基本原理

    Module Layer:模块层主要涉及包及共享的代码; Lifecycle Layer:生命周期层主要涉及Bundle的运行时生命周期管理; Service Layer:服务层主要涉及模块之间的交互和通信...模块层 模块层是 OSGi 框架中最基础的部分。 OSGi 的模块化,是通过为 Jar 包添加metadata 来定义哪些类该暴露,哪些类该隐藏,其控制单元叫做 Bundle(jar 包)。...bundle 是以 jar 包形式存在的一个模块化物理单元,里面包含了代码,资源文件和元数据(metadata),并且jar包的物理边界也同时是运行时逻辑模块的封装边界。 ?...如何定义 Bundle Bundle 是 OSGi 中的基本组件,其表现形式仍然为 Java 概念中传统的 Jar 包。...但是要真正使用 Bundle,需要使用生命周期层的API,来和OSGi框架的生命周期层进行交互。 在标准的Java编程中,可以通过将jar包放到classpath中来使用它。

    3.3K90

    初识OSGI

    指维护OSGI规范的官方联盟 OSGi Alliance是一个由Sun Microsystems、IBM、爱立信等于1999年3月成立的开放的标准化组织,最初名为Connected Alliance...它本身提供的服务也是最全的,几乎涵盖了全部的OSGi 4.2的标准。除此之外还提供了一些非标准的功能,例如iPOJO。...框架本身非常紧凑,你只需要3个包加一个shell就可以运行了,无论是开发还是Debug都非常简便。除了Felix,还有两个项目是和OSGi相关的。...如果显示如上消息,恭喜你,可以点击Run启动OSGI console 啦!!! OSGI Console 启动 ? IDEA 版本 IDEA也带有OSGI 开发工具包,let's do it....import Bnd/Bndtools projects automatically 指的是将普通的jar包 打包 为OSGI 可用的jar.

    1.4K20

    针对某个目标的渗透测试(外网渗透)

    Zimbra配置文件位置为/conf/localconfig.xml 接着抓取到它的数据包,这里需要带入cookie的数据包 ?...target=https://127.0.0.1:7071/service/admin/soap ,接着进行 抓包,获取到数据包之后修改POST模式。...Liferay 框架RCE漏洞 Liferay 框架2020年3月份爆出了Liferay Portal JSON Web 服务器的RCE漏洞,使用nmap对其操作系统进行扫描判断,然后对执行命令的方式进行修改...抓取数据包,测试报错注入成功!但是这个数据库给的权限不高! ? 测试一番之后发现没有WAF等拦截,直接使用sqlmap跑一下成功获取到了注入数据! ?...第二个存在有注入点的网站如下,是一个登陆框的注入点,抓包对其进行注入点测试,这里直接就报错了!这里显示报错说明可以是可以报错注入来获取信息! ? 接着获取它的权限,这里不是root权限。

    2.4K20

    Spring Boot 如何热加载jar实现动态插件?

    常见的动态插件的实现方式有 SPI、OSGI 等方案,由于脱离了 Spring IOC 的管理在插件中无法注入主程序的 Bean 对象,例如主程序中已经集成了 Redis 但是在插件中无法使用。...本文主要介绍在 Spring Boot 工程中热加载 jar 包并注册成为 Bean 对象的一种实现思路,在动态扩展功能的同时支持在插件中注入主程序的 Bean 实现功能更强大的插件。...二、热加载 jar 包 通过指定的链接或者路径动态加载 jar 包,可以使用 URLClassLoader 的 addURL 方法来实现,样例代码如下: 「ClassLoaderUtil 类」 public...三、动态注册 Bean 将插件 jar 中加载的实现类注册到 Spring 的 IOC 中,同时也会将 IOC 中已有的 Bean 注入进插件中;分别在程序启动时和运行时两种场景下的实现方式。...启动时注册 使用 ImportBeanDefinitionRegistrar 实现在 Spring Boot 启动时动态注册插件的 Bean,样例代码如下:「PluginImportBeanDefinitionRegistrar

    5.9K10
    领券