标签: magnolia

基于Java的CMS,具有RESTful服务/ API以访问内容

对于那些可能因为"没有建设性而投票支持这个问题的人 - 目前看来,这个问题不适合我们的问答形式." - 如果你建议我应该在哪里发布这个问题(https://softwareengineering.stackexchange.com/?或任何以CMS为中心的论坛?)会很棒

之前曾提出过类似的问题:

所有这些都已经有几年了,所以我想知道是否有新的建议/讨论.

一些背景:我们是Java商店,我们为客户创建/维护网站,我们的技术堆栈是Java,Spring,SQL,JSP,HTML5,JQuery,Tomcat,JBoss,Maven等......通常的东西.到目前为止,就"内容"而言,我们要么将其放入JSP读取的一些属性文件中(例如产品X的描述)或提供动态内容的后端服务(例如,产品X的当前值是什么) ).

现在我们正在重新思考我们管理内容的方法,因为我们正在为具有相同内容的客户端管理越来越多的属性(例如,网站,移动网站,移动应用程序等),所以我们当然希望避免使用多个副本.相同的内容传播.

我特别想要的一些事情:

  1. 基于Java(因为我们是Java商店:1)在处理基于Java的东西方面的​​更多专业知识和2)避免在堆栈中引入另一种技术)

  2. 可扩展性/定制.需要能够自定义CMS(这就是我们希望坚持我们的Java专业知识的原因),以便可以扩展它以与其他Web服务连接以使用内容等.

  3. 专注于内容 - 我们需要明确区分内容与UI呈现,回到我们正在寻找的内容,我们需要将内容传递到单独的属性中.

  4. 用于访问内容的RESTful服务/ API - 与上述相同.我们需要将内容直接作为JSON/JSON-P /访问.XML Feed.

  5. 需要有一个像样的用户界面,并且对业务用户来说越直观越好,因为我们可能被移动到平台的一些客户可能想要管理他们自己的内容

  6. 多语言支持

  7. 开源/低成本

到目前为止,我有几个选择:

Adobe CQ - 看起来是最理想的解决方案,但不幸的是它成本过高

Hippo CMS - 看起来适合我们正在寻找的东西,我不确定它的记录有多好,教程/方法似乎相当稀少,它们在欧洲的市场份额似乎比在北美更大.

Liferay - 更加专注于"门户"而不是CMS提供内容

Alfresco - 更专注于"文件"

dotCMS - 像Hippo CMS一样,似乎这个可能符合我们的需求.

Magnolia CMS - 与dotCMS和Hippo一样环顾同一条小巷.从我看到的评论看来,他们似乎更关注单个网站,而不是内容与UI之间的清晰分离.

我个人之前没有太多直接使用CMS的经验.

您对上述每个选项的想法/意见,或者如果您有其他解决方案,请不要在此提及,我们将不胜感激!我的挑战之一是我们需要做出一个非常合理的决定,因为无论我们决定采用哪种方式,我们都可能会坚持下去,决定不是很容易被丢弃并重新开始的.

java content-management-system magnolia dotcms hippocms

33
推荐指数
2
解决办法
2万
查看次数

用于Spring MVC Web应用程序和设备响应式Web设计的CMS是什么?

我正在寻找为我的公司设计一个小型电子商务网站.我将在后端使用Spring和Java的东西.该网站应该是设备响应.我很困惑决定使用哪个CMS.请有人帮助我.

spring spring-mvc opencms magnolia responsive-design

21
推荐指数
1
解决办法
2万
查看次数

使用IntelliJ在webapp运行配置中使用maven覆盖?

我正在开发一个基于玉兰的网站.我正在使用webapp原型来创建一个新的Web应用程序.使用命令行,我能够生成一个WAR并将其部署在我的容器(Tomcat)中.我然后运行它,它工作正常.

我的下一步是将我的项目结构导入IntelliJ.IntelliJ认为一切都很好,并且能够编译所有内容.我先测试了maven clean,然后让IntelliJ完成其余的工作(重建项目).

最后一步是让它在我的容器中运行.我之前为网络应用设置了运行配置(他们不使用战争叠加),他们工作得很好.在这种情况下,我像以前一样设置它并指向我的爆炸webapp工件.

一旦我运行tomcat,它就找不到我的webapp.我发现覆盖层还没有合并到项目的目标目录中(通常就是在进行maven安装时).然而,IntellJ在我的项目中创建了一个覆盖目录,并在那里解压缩(overlay/super)WAR文件.

当我自己进行maven安装时,我得到它的工作,然后在IntelliJ中运行Tomcat.这是显而易见的,因为现在所有需要的文件都在我的目标目录中(例如web.xml):).

我想要的是: - IntelliJ知道当它运行Tomcat时,它应该像"mvn install"或"mvn package"那样准备目标目录.

它的作用: - 它介于两者之间.它确实创建了一个目标目录,它确实从webapp项目中复制资源.它不会覆盖任何WAR依赖项,因此webapp目标目录不完整.

任何人有任何解决这个问题的技巧?

tomcat overlay intellij-idea magnolia maven

11
推荐指数
1
解决办法
3616
查看次数

Java垃圾收集器和内存的问题

我对Java应用程序有一个非常奇怪的问题.

基本上它是一个使用玉兰(一个cms系统)的网页,在生产环境中有4个实例可用.有时CPU在java进程中达到100%.

所以,第一种方法是进行线程转储,并检查有问题的线程,我发现的是奇怪的:

"GC task thread#0 (ParallelGC)" prio=10 tid=0x000000000ce37800 nid=0x7dcb runnable 
"GC task thread#1 (ParallelGC)" prio=10 tid=0x000000000ce39000 nid=0x7dcc runnable 
Run Code Online (Sandbox Code Playgroud)

好吧,这很奇怪,我从来没有像这样的垃圾收集器,所以接下来我们做的是激活JMX并使用jvisualvm检查机器:堆内存使用率非常高(95%).

天真的方法:增加内存,所以问题需要更多的时间才能在重新启动的服务器上出现,结果,内存增加(6 GB!)问题出现在重新启动后20小时,而其他服务器上的内存较少(4GB!)运行了10天,这个问题还需要几天才能重新出现.此外,我尝试使用服务器失败的apache访问日志,并使用JMeter将请求重播到本地服务器,以尝试重现错误...它也不起作用.

然后我更多地调查了日志以找到这个错误

info.magnolia.module.data.importer.ImportException: Error while importing with handler [brightcoveplaylist]:GC overhead limit exceeded
at info.magnolia.module.data.importer.ImportHandler.execute(ImportHandler.java:464)
at info.magnolia.module.data.commands.ImportCommand.execute(ImportCommand.java:83)
at info.magnolia.commands.MgnlCommand.executePooledOrSynchronized(MgnlCommand.java:174)
at info.magnolia.commands.MgnlCommand.execute(MgnlCommand.java:161)
at info.magnolia.module.scheduler.CommandJob.execute(CommandJob.java:91)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
    Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
Run Code Online (Sandbox Code Playgroud)

另一个例子

    Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
    at java.util.Arrays.copyOf(Arrays.java:2894)
    at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:117)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:407)
    at java.lang.StringBuilder.append(StringBuilder.java:136)
    at java.lang.StackTraceElement.toString(StackTraceElement.java:175)
    at java.lang.String.valueOf(String.java:2838)
    at java.lang.StringBuilder.append(StringBuilder.java:132)
    at java.lang.Throwable.printStackTrace(Throwable.java:529)
    at org.apache.log4j.DefaultThrowableRenderer.render(DefaultThrowableRenderer.java:60) …
Run Code Online (Sandbox Code Playgroud)

java memory garbage-collection magnolia

9
推荐指数
1
解决办法
5082
查看次数

如何在Spring中使用SwitchUserFilter模仿用户?

我对Spring模拟用户没有任何了解.

我已经通过一些示例代码来模拟用户,并注意到SwitchUserFilter用于此实现.

如何使用Spring SwitchUserFilter Filter实现模拟用户以及它是如何工作的?冒充用户的内部流程是什么?

在我的应用程序中,我也使用spring security.

任何人都可以通过简单的描述或任何示例来帮助我实现这一目标吗?

impersonation spring-mvc spring-security magnolia

9
推荐指数
1
解决办法
5986
查看次数

Magnolia 和 Jahia 的实践(+6 个月)经验,哪个更好?

我们正在研究基于 java 的 CMS(是的 java,我们正在远离脚本语言)。

任何人都有使用 Magnolia 和 Jahia 社区版的经验,制作模块更容易,您的整体体验如何?

  • 对于内容编辑
  • 对于开发人员(制作模块)
  • 处理变更请求是多么容易(你能把这个或那个添加到页面 foo/bar 中吗)

房车

comparison magnolia jahia

5
推荐指数
1
解决办法
2728
查看次数

没有Spring ContextLoadListener的Resteasy和Spring集成

我正在为我的项目使用Resteasy和Spring.正如Resteasy文件所述:http://docs.jboss.org/resteasy/docs/3.0.1.Final/userguide/html_single/index.html#RESTEasy_Spring_Integration .

我需要在web.xml文件中添加一个监听器:

<listener>
  <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
Run Code Online (Sandbox Code Playgroud)

<listener>
  <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>
Run Code Online (Sandbox Code Playgroud)

但是,在我的项目中,我们还使用了一个名为magnolia的cms,而magnolia也有一个SpringContextLoaderListener的实现.如果我把两个上下文监听器.当我运行应用程序时,玉兰花不会启动.

所以根据Resteasy的文件说:

如果不使用Spring ContextLoaderListener创建bean工厂,则可以通过分配org.jboss.resteasy.plugins.spring.SpringBeanProcessor的实例来手动注册RESTeasy BeanFactoryPostProcessor.您可以从ServletContext属性org.jboss.resteasy.spi.ResteasyProviderFactory和org.jboss.resteasy.spi.Registry获取ResteasyProviderFactory和Registry的实例.(真的是这些类的字符串FQN).还有一个org.jboss.resteasy.plugins.spring.SpringBeanProcessorServletAware,它将自动从Servlet Context注入对Registry和ResteasyProviderFactory的引用.(也就是说,如果您使用RestasyBootstrap来引导Resteasy).

有没有人知道如何在不使用Resteasy ContextLoaderListener的情况下实现这一目标?我需要在spring applicationContext xml文件中添加什么内容?

spring magnolia resteasy

5
推荐指数
1
解决办法
1476
查看次数

在Magnolia CMS中从作者发布到公众

我只是在尝试Magnolia CMS。我遇到了绊脚石。

我的步骤:

  1. 遵循了hello-magnolia教程。在Author(localhost)模式下一切正常。
  2. 单击发布(包括子节点)
  3. 转到公共站点(在我的本地主机http:// localhost:8080 / magnoliaPublic / Hello-Magnolia上
  4. 我收到服务器500错误,看起来像这样:

HTTP状态500-javax.servlet.ServletException:info.magnolia.rendering.engine.RenderException:info.magnolia.registry.RegistrationException:hello-magnolia:pages / hello

我尝试在Author中发布所有内容并重新启动服务器,但是到目前为止,错误仍然存​​在。

任何帮助都会很棒。

magnolia

5
推荐指数
1
解决办法
773
查看次数

有什么用!(感叹号)在 FreeMarker 中吗?

我一直在Magnolia 代码示例中的 FreeMarker 代码末尾看到感叹号。例如:

${content.header!}
Run Code Online (Sandbox Code Playgroud)

感叹号叫什么,它有什么作用?

freemarker magnolia

5
推荐指数
1
解决办法
1765
查看次数

Magnolia项目原型无法解析vaadin依赖项

我正在尝试创建一个Magnolia项目原型:

我在跑

mvn archetype:generate -DarchetypeCatalog=http://nexus.magnolia-cms.com/content/groups/public/
Run Code Online (Sandbox Code Playgroud)

我选择

5:http://nexus.magnolia-cms.com/content/groups/public/ - > info.magnolia.maven.archetypes:magnolia-project-archetype(创建Magnolia项目的原型(父pom和webapp) ))

archetype version我选择1.1.0定义属性'magnolia-version'的值:5.0.4

当我运行maven构建时,webapp构建失败,因为它无法找到一些vaadin库

[WARNING] The POM for org.vaadin.addons:icepush:jar:0.5.3 is missing, no dependency information available
[WARNING] The POM for org.vaadin.addons:cssinject:jar:2.0.3 is missing, no dependency information available
[WARNING] The POM for org.vaadin.addons:gwt-graphics:jar:1.0.0 is missing, no dependency information available
[WARNING] The POM for org.vaadin.addons:ckeditor-wrapper-for-vaadin:jar:7.8.3 is missing, no dependency information available
[WARNING] The POM for org.vaadin.addon:easyuploads:jar:7.0.0 is missing, no dependency information available
[WARNING] The POM for org.vaadin.addons:refresher:jar:1.2.1.7 is missing, no dependency …
Run Code Online (Sandbox Code Playgroud)

java magnolia vaadin maven

4
推荐指数
1
解决办法
1274
查看次数