Resources Importer Web

Background #

Resources Importer is a web-plugin created by Ryan Park to allow front-end developers to package web content source and portlet configurations together in a theme.

All of the web content source files are located in the (my-theme-name)/WEB-INF/src/resources-importer/

A JSON file, named "sitemap.json" is used to describe the site pages, layouts, web content and portlet configurations.

When the theme is deployed with the accompanied resources-importer-web a site template is created. Note: The Welcome-Theme and its content gets applied to the default site if there isn't any user content found.

Bradley Wood has been working on getting the first batch of themes ready for Marketplace with this new method. So look at zoe-brochure, zoe-healthcare, zoe-resort, zoe-tech to get an idea of how some of the code looks.

Requested Features #

  • None pending.

Completed Features #

Version trunk #

Version 1.0.0 #

( Available in Marketplace) <hr />

- please create a ticket in JIRA using the resources-importer component type

Configurations #

Developer Mode #

A theme can have the developer moder turned by adding this property: resources-importer-developer-mode-enabled=true in their liferay-plugin-package.properties file of the theme.

When the theme that has the dev mode turn on, The site template is recreated the site template without having to delete the site that is using the template, then deleting the site template.

This dev mode is used if the content of the theme has been changed such as sitemap.json or anything in the "[theme_folder]/WEB-INF/src/resources-importer" folder.

Source File Folder Structure #

- WEB-INF
    - src
        - resources-importer
           - archive.lar (optional) 
            - sitemap.json
            - document_library
                - documents
                    - image1.png
                    - image2.png
            - journal
                - articles
                     - Main Carousel.html
                    - Featured Content (name of template)
                        - Exceptional Support.xml
                        - Our Goal.xml
                        - The Experience.xml
                - structures
                    - Featured Content.xml
                    - Parent Structure.xml
                    - Parent Structure [folder]
                          - Child Structure.xml
                - templates
                    - Featured Content [structure name]
                        - Featured Content.vm
                        - Featured Content2.vm

articles - group articles by a folder that matches the name of the template file structures - no folders only structure .xml files templates - group templates by a folder matches the name of the structure file

Archive.lar #

An Archive.lar file can be added in the resources folder and will get applied to the site template. The .lar is exported from the site scope.

Web Content #

Use title case [ex. Featured Content] for both folder and files within (articles, structures, templates) required folders

Document Library #

In order to include images in web content.html files or journal article .xml files here are how to reference the documents located in (./WEB-INF/src/resources-importer/document_library/documents/)

For .html:

 <img src="[$FILE=My Image.jpg$]" /> 

<a href="[$FILE=My Document.pdf$]">Click Here</a>

For .xml

 <![CDATA[[$FILE=carousel_2.png$]]]>

For .vm

 [$FILE=image_name.jpg$]

sitemap.json #

{
	"layoutTemplateId": "2_columns_ii",
	"layouts": [
		{
			"title": "Home",
			"name": "Home",
			"friendlyURL": "/home",
			"layoutTemplateId": "1-2-3-columns",
			"columns": [
				[
					"Home Banner.html"
				],
				[
					"Welcome to Our Clinics.html"
				],
				[
					"Our Mission.html"
				],
				[
					"Our Team.html"
				],
				[
					"Our Promise.html"
				],
				[
					"Recent News.html"
				]
			]
		},
		{
			"title": "About",
			"layoutTemplateId": "2-1-2-4-columns",
			"name": "About",
			"friendlyURL": "/about",
			"layouts": [
				{
					"title": "Category 1",
					"name": "Category 1",
					"friendlyURL": "/category-1",
				},
				{
					"title": "Category 2",
					"name": "Category 2",
					"friendlyURL": "/category-2",
				},
				{
					"title": "Category 3",
					"name": "Category 3",
					"friendlyURL": "/category-3",
				},
				{
					"title": "Category 4",
					"name": "Category 4",
					"friendlyURL": "/category-4",
				}
			],
			"columns": [
				[
					"The 7 Cogs Promise.html"
				],
				[
					{
						"portletId": "71",
						"portletPreferences": {
							"displayStyle": "from-level-1-with-title"
						}
					}
				],
				[
					"Make an Appointment.html"
				],
				[
					"Make an Appointment Left Image.html"
				],
				[
					{
						"portletId": "1_WAR_webformportlet_INSTANCE_${groupId}",
						"portletPreferences": {
							"portletSetupCss": {
								"advancedData": {
									"customCSSClassName": "make-appointment"
								}
							},
							"portletSetupShowBorders": "false",
							"fieldsEditingDisabled": "true",
							"fieldType1": "text",
							"fieldLabel1": "Full Name",
							"fieldType2": "text",
							"fieldLabel2": "Email",
							"fieldType3": "textarea",
							"fieldValue": "Write your short description here",
							"title" : "Seeing your Doctor, made easy",
							"description" : "Lorem ipsum dolor sit amet, lohtil
 consectetur adipiscing elit. 
Vivamus feugiat, augue in sollicitudin blandit, magna 
purus bibendum justo, quisnic scelerisque ipsum turpis 
eu dui. Nunc lobortis, augue ac viverra convallis."
						}
					}
				],
				[
					"Section 1.html"
				],
				[
					"Section 2.html"
				],
				[
					"Section 3.html"
				],
				[
					"Section 4.html"
				]
			]
		},
		{
			"title": "Clinic",
			"name": "Clinic",
			"friendlyURL": "/clinic"
		},
		{
			"title": "Services",
			"name": "Services",
			"friendlyURL": "/services"
		},
		{
			"title": "Health Plans",
			"name": "Health Plans",
			"friendlyURL": "/health-plans"
		},
		{
			"title": "Location",
			"name": "Location",
			"friendlyURL": "/location"
		},
		{
			"title": "Contact Us",
			"name": "Contact Us",
			"friendlyURL": "/contact-us"
		}
	]
}


=== Web Form Portlet Example ===
{{{
{
      "portletId": "1_WAR_webformportlet_INSTANCE_${groupId}",
      "portletPreferences": {
           "fieldType2": "radio",
	   "fieldOptions2": "option1,option2,option3",
	   "title" : "",
	   "description" : "",
           "portletSetupCss": {
                 "advancedData": {
                       "customCSSClassName": "make-appointment"
		 }
	   }
      }
}
1 附件
52835 查看
平均 (3 票)
满分为 5,平均得分为 5.0。
评论
讨论主题回复 作者 日期
Good job Ryan... Jay Patel 2012年8月27日 上午7:49
This is brilliant stuff Brad! Thanks a ton. I... Kamesh Sampath 2012年9月23日 上午1:09
One more thing which I forgot was the instance... Kamesh Sampath 2012年9月23日 上午1:30
i want to create a site template with the... Ahmed bouchriha 2012年10月11日 上午6:48
@Kamesh Sampath the instanceIds are generated... Bradley Wood 2012年10月11日 上午9:33
@ahmed bouchriha I'm looking at it and I think... Bradley Wood 2012年10月12日 下午12:28
Thank you that was very helpful Ahmed bouchriha 2012年10月16日 上午10:02
"create a portlet-ext.properties file in your... Ahmed bouchriha 2012年10月24日 上午5:50
I was wrong earlier, before you deploy the... Bradley Wood 2012年10月26日 下午10:12
How to install? 11:47:07,558 INFO [STDOUT]... Alex Perez 2012年11月28日 上午7:02
How to install??? S.O: SLES 11 SP2 jboss 5.1.0... Alex Perez 2012年11月28日 上午7:12
Not installed, I can not see ... In Control... Alex Perez 2012年11月28日 上午7:13
Solucionado... SOLVED... Create a... Alex Perez 2012年12月1日 下午3:00
I think this is a great idea, but I question... Joseph Toman 2013年1月10日 上午11:48
I would like to know where can I get this... Lipika Rout 2013年2月1日 上午6:27
@Lipika - You can download the resources... Jim Hinkey 2013年3月16日 上午5:45
Hm…, I'm reluctant to download the "latest... Reiner Saddey 2014年10月28日 上午4:00
Surprise! Having pushed all sorts of buttons... Reiner Saddey 2014年10月28日 上午4:24
Hi All, When I try to deploy resource importer... ramakanth reddy 2013年6月4日 上午10:16
Hi All, When I try to deploy resource importer... ramakanth reddy 2013年6月4日 上午10:16
@Ramakanth - Have you tried setting... Jim Hinkey 2013年6月4日 上午11:50
Hi Jim, Thanks for your reply. I have tried... ramakanth reddy 2013年6月4日 下午10:39
Awesome stuff thanks!, What about performance?... Adolfo Benedetti 2013年12月3日 上午12:38
How can I get the values to set up the webform... Artur Mello 2014年9月3日 上午6:33

在 12-8-27 上午7:49 发帖。
This is brilliant stuff Brad! Thanks a ton.

I have few thoughtsd proabably queries,

1. Can we make the redploys override if the Template already exists, this will be highly useful during develoment
2. Can we do partial import of resources e.g. when the layout already exist then create only the content, layout of portlets etc.,
3.Can we also include mechanism to create the users ? Not sure it makes sense here but then it would be handy

Let me know your thoughts.
在 12-9-23 上午1:09 发帖。
One more thing which I forgot was the instance id attributes, does it need to be some valid instance id or we have just dummy ones. If we have dummy ones whether they need to be unique ?
在 12-9-23 上午1:30 发帖。
i want to create a site template with the resources importer plugin and i have an article that use a web content structure that extends another structure and i didn't find the method to do that
the situation is :
structure A used by my article have a parent structure B how can i references the 2 on the resources importer .
note that i have to use the structure B because its used on many others structure as parant and i cant just solve this problem by repeating its elements on each child structure.
Thanks
在 12-10-11 上午6:48 发帖以回复 Kamesh Sampath
Bradley Wood
@Kamesh Sampath the instanceIds are generated when I initially create the web content then download the article.xml file
在 12-10-11 上午9:33 发帖。
Bradley Wood
@ahmed bouchriha I'm looking at it and I think you are correct that as of right now I don't see it possible. This is an idea of how the structure could look in the future for this issue.

journal
- sturctures
-- Parent Structure.xml
-- Parent Structure
---- Child Structure.xml

Here is the ticket for this request:
http://issues.liferay.com/browse/LPS-30462

This feature has been completed, make sure to checkout and update from github.com https://github.com/liferay/liferay-plugins/compare/shinnlok:260341f890...c4dc8db­500
在 12-10-12 下午12:28 发帖。
Thank you that was very helpful
在 12-10-16 上午10:02 发帖以回复 Bradley Wood
"create a portlet-ext.properties file in your bundle located: /tomcat/webapps/ROOT/WEB-INF/classes/

in portlet-ext.properties set. developer.mode.enabled=true

This will turn resources importer into developer mode which will update the site template the resources importer creates."
i did that but still not updating the site template it prompt this message
Group or layout set prototype already exists for company liferay.com
is this a known issue or am i missing something
Thanks
在 12-10-24 上午5:50 发帖以回复 ahmed bouchriha
Bradley Wood
I was wrong earlier, before you deploy the resources importer find the portlet.properties file. in there is a value for developer.mode.enabled set that to true.
在 12-10-26 下午10:12 发帖以回复 ahmed bouchriha
How to install?

11:47:07,558 INFO 11:47:07,558 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:177] Processing resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.war
11:47:07,560 INFO 11:47:07,560 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][WebAutoDeployListener:­48] Copying web plugin for /opt/liferay-6.1/deploy/resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.­war
11:47:07,562 INFO 11:47:07,562 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:763] Deploying resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.war
11:47:07,616 INFO Expanding: /opt/liferay-6.1/deploy/resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.­war into /tmp/20121128114707568
11:47:07,687 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF
11:47:07,751 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF/classes
11:47:07,757 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF/classes
11:47:07,758 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF
11:47:07,856 INFO 11:47:07,856 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:2083] Modifying Servlet 2.4 /tmp/20121128114707568/WEB-INF/web.xml
11:47:07,963 INFO Copying 34 files to /opt/liferay-6.1/jboss-5.1.0.GA/standalone/deployments/resources-importer-web.wa­r
11:47:07,972 INFO Copying 1 file to /opt/liferay-6.1/jboss-5.1.0.GA/standalone/deployments/resources-importer-web.wa­r
11:47:07,981 INFO Deleting directory /tmp/20121128114707568
11:47:07,989 INFO 11:47:07,989 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][WebAutoDeployListener:­54] Web plugin for /opt/liferay-6.1/deploy/resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.­war copied successfully. Deployment will start in a few seconds.
在 12-11-28 上午7:02 发帖。
How to install???

S.O: SLES 11 SP2
jboss 5.1.0 GA
JDK 1.7
liferay 6.1 CE (war)
DataBase: Hypersonic

11:47:07,558 INFO 11:47:07,558 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:177] Processing resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.war
11:47:07,560 INFO 11:47:07,560 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][WebAutoDeployListener:­48] Copying web plugin for /opt/liferay-6.1/deploy/resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.­war
11:47:07,562 INFO 11:47:07,562 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:763] Deploying resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.war
11:47:07,616 INFO Expanding: /opt/liferay-6.1/deploy/resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.­war into /tmp/20121128114707568
11:47:07,687 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF
11:47:07,751 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF/classes
11:47:07,757 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF/classes
11:47:07,758 INFO Copying 1 file to /tmp/20121128114707568/WEB-INF
11:47:07,856 INFO 11:47:07,856 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:2083] Modifying Servlet 2.4 /tmp/20121128114707568/WEB-INF/web.xml
11:47:07,963 INFO Copying 34 files to /opt/liferay-6.1/jboss-5.1.0.GA/standalone/deployments/resources-importer-web.wa­r
11:47:07,972 INFO Copying 1 file to /opt/liferay-6.1/jboss-5.1.0.GA/standalone/deployments/resources-importer-web.wa­r
11:47:07,981 INFO Deleting directory /tmp/20121128114707568
11:47:07,989 INFO 11:47:07,989 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][WebAutoDeployListener:­54] Web plugin for /opt/liferay-6.1/deploy/resources-importer-web-6.1.1.1-ce-ga2-20120824095956608.­war copied successfully. Deployment will start in a few seconds.

No se instala, no puedo verlo...

En panel de control -->Servidor-->Gestor de actualizaciones

Me indica:

Plugin: Resources Importer/resources-importer-web

Fiable: No

Estado: Instalación en proceso

Version instalada: 6.1.1.1-ce-ga2-20120824095956608
在 12-11-28 上午7:12 发帖。
Not installed, I can not see ...

In Control Panel -> Server -> Update Manager

I stated:

Plugin: Resources Importer / resources-web-Importer

Reliable: No

State: Installation in progress

Installed Version: 6.1.1.1-ce-GA2-20120824095956608
在 12-11-28 上午7:13 发帖。
Solucionado... SOLVED...

Create a portal-ext.properties file in $LIFERAY_HOME (one level above $JBOSS_HOME and add the following properties:

NOTE: The autodeploy folder must be set with the full name of the folder - you can’t use any variables to define the location

auto.deploy.jboss.dest.dir=${jboss.home.dir}/server/default/deploy
auto.d­eploy.deploy.dir=C:/JBoss-<version>/deploy
在 12-12-1 下午3:00 发帖以回复 Alex Perez
I think this is a great idea, but I question whether it's the right implementation. Looking at FileSystemImporter.java, I see you are parsing the JSON by hand. Because of this, you essentially have to recapitulate the entire site template LAR code in order to have complete coverage of the features that have already been implemented there. Not only that, but you have to stay in sync with any changes that happen in that code. That's a lot of work. I think you would have been better off writing a generic JSON to LAR converter and then feeding the transformed sitemap.json file into the LAR import system. I noticed this because I need to add keywords to some of my pages and there was no way to do it in sitemap.json . Yes, I could add a LAR to the theme, but at that point, what's the point? I can import a site template LAR directly. But like I said, it's a good idea, and front end developers who have to deal with Liferay deserve all the help they can get.
在 13-1-10 上午11:48 发帖。
I would like to know where can I get this plugin war.When I build from source I am getting lots of compilation error for portal-service-6.1.0.jar dependencies.

Does it support Liferay 6.1.20 - EE?
在 13-2-1 上午6:27 发帖。
@Lipika - You can download the resources importer application from Liferay Marketplace. Search for either Resources Importer CE or Resources Importer EE, depending on your Liferay Portal platform, and download the latest version. Install and deploy the resources importer to your Liferay instance the same way you would deploy any other Liferay plugin or Marketplace app.
在 13-3-16 上午5:45 发帖以回复 Lipika Rout
Hi All,
When I try to deploy resource importer in liferay 6.1.20 EE version, I am getting struts related warnings followed by liferay journal error as follows :

Failed to define class org.apache.portals.bridges.struts.taglib.FormTag in Module "deployment.test-resourceimporter-6.1.20.1.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link org/apache/portals/bridges/struts/taglib/FormTag (Module "deployment.test-resourceimporter-6.1.20.1.war:main" from Service Module Loader)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.Module.loadModuleClass(Module.java:517) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClas­sLoader.java:468) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassL­oader.java:456) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassL­oader.java:423) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.j­ava:398) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120­) [jboss-modules.jar:1.1.1.GA]
at java.lang.Class.forName0(Native Method) [rt.jar:1.6.0_43]
at java.lang.Class.forName(Class.java:249) [rt.jar:1.6.0_43]
at org.jboss.as.server.deployment.reflect.DeploymentClassIndex.classIndex(Deploymen­tClassIndex.java:54)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processCompon­entConfig(InterceptorAnnotationProcessor.java:63) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(Interc­eptorAnnotationProcessor.java:55) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPh­aseService.java:113)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceContro­llerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.­java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:8­95) [rt.jar:1.6.0_43]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_43]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_43]

ERROR:

Plugin package on context test-resourceimporter-6.1.20.1 cannot be tracked because this WAR does not contain a liferay-plugin-package.xml file
05:52:31,640 INFO [com.liferay.portal.plugin.PluginPackageUtil][PluginPackageUtil:1421] Checking for available updates
05:52:31,656 INFO [com.liferay.portal.plugin.PluginPackageUtil][PluginPackageUtil:1465] Finished checking for available updates in 0 ms
05:52:32,436 ERROR [liferay/hot_deploy-1][SerialDestination:113] Unable to process message {destinationName=liferay/hot_deploy, response=null, responseDestinationName=null, responseId=null, payload=null, values={principalPassword=null, principalName=null, command=deploy, companyId=0, servletContextName=test-resourceimporter-6.1.20.1}}
com.liferay.portal.kernel.mes­saging.MessageListenerException: com.liferay.portlet.journal.StructureXsdException
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListe­ner.java:31)
at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessag­eListener.java:63)
at com.liferay.portal.kernel.messaging.SerialDestination$1.run(SerialDestination.ja­va:110)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(Thre­adPoolExecutor.java:671)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoo­lExecutor.java:582)
at java.lang.Thread.run(Thread.java:662)
Caused by: com.liferay.portlet.journal.StructureXsdException
at com.liferay.portlet.journal.service.impl.JournalStructureLocalServiceImpl.addStr­ucture(JournalStructureLocalServiceImpl.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at­ sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:122)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionI­nterceptor.java:71)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.security.pacl.PACLAdvice.invoke(PACLAdvice.java:51)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.jav­a:211)
at com.sun.proxy.$Proxy221.addStructure(Unknown Source)
at com.liferay.portlet.journal.service.JournalStructureLocalServiceUtil.addStructur­e(JournalStructureLocalServiceUtil.java:295)
at com.liferay.resourcesimporter.util.FileSystemImporter.doAddJournalStructures(Fil­eSystemImporter.java:477)
at com.liferay.resourcesimporter.util.ResourceImporter.addJournalStructures(Resourc­eImporter.java:121)
at com.liferay.resourcesimporter.util.FileSystemImporter.setupAssets(FileSystemImpo­rter.java:744)
at com.liferay.resourcesimporter.util.FileSystemImporter.doImportResources(FileSyst­emImporter.java:530)
at com.liferay.resourcesimporter.util.ResourceImporter.importResources(ResourceImpo­rter.java:35)
at com.liferay.resourcesimporter.messaging.HotDeployMessageListener.doReceive(HotDe­ployMessageListener.java:166)
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListe­ner.java:25)
... 5 more


Please help me how to resolve the issues.

I have not added any articles,structures etc ,I have just added sitemap.json

liferay-pulgin-package.properties:

name=Test Resourceimporter
module-group-id=liferay
module-incremental-version=1
tags=
short-de­scription=
change-log=
page-url=http://www.liferay.com
author=Liferay, Inc.
licenses=LGPL
liferay-versions=6.1.1

#required-deployment-contexts=\
#resources­-importer-web
#resources-importer-developer-mode-enabled=true
在 13-6-4 上午10:16 发帖。
Hi All,
When I try to deploy resource importer in liferay 6.1.20 EE version, I am getting struts related warnings followed by liferay journal error as follows :

Failed to define class org.apache.portals.bridges.struts.taglib.FormTag in Module "deployment.test-resourceimporter-6.1.20.1.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link org/apache/portals/bridges/struts/taglib/FormTag (Module "deployment.test-resourceimporter-6.1.20.1.war:main" from Service Module Loader)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.Module.loadModuleClass(Module.java:517) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClas­sLoader.java:468) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassL­oader.java:456) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassL­oader.java:423) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.j­ava:398) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120­) [jboss-modules.jar:1.1.1.GA]
at java.lang.Class.forName0(Native Method) [rt.jar:1.6.0_43]
at java.lang.Class.forName(Class.java:249) [rt.jar:1.6.0_43]
at org.jboss.as.server.deployment.reflect.DeploymentClassIndex.classIndex(Deploymen­tClassIndex.java:54)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processCompon­entConfig(InterceptorAnnotationProcessor.java:63) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(Interc­eptorAnnotationProcessor.java:55) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPh­aseService.java:113)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceContro­llerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.­java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:8­95) [rt.jar:1.6.0_43]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_43]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_43]

ERROR:

Plugin package on context test-resourceimporter-6.1.20.1 cannot be tracked because this WAR does not contain a liferay-plugin-package.xml file
05:52:31,640 INFO [com.liferay.portal.plugin.PluginPackageUtil][PluginPackageUtil:1421] Checking for available updates
05:52:31,656 INFO [com.liferay.portal.plugin.PluginPackageUtil][PluginPackageUtil:1465] Finished checking for available updates in 0 ms
05:52:32,436 ERROR [liferay/hot_deploy-1][SerialDestination:113] Unable to process message {destinationName=liferay/hot_deploy, response=null, responseDestinationName=null, responseId=null, payload=null, values={principalPassword=null, principalName=null, command=deploy, companyId=0, servletContextName=test-resourceimporter-6.1.20.1}}
com.liferay.portal.kernel.mes­saging.MessageListenerException: com.liferay.portlet.journal.StructureXsdException
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListe­ner.java:31)
at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessag­eListener.java:63)
at com.liferay.portal.kernel.messaging.SerialDestination$1.run(SerialDestination.ja­va:110)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(Thre­adPoolExecutor.java:671)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoo­lExecutor.java:582)
at java.lang.Thread.run(Thread.java:662)
Caused by: com.liferay.portlet.journal.StructureXsdException
at com.liferay.portlet.journal.service.impl.JournalStructureLocalServiceImpl.addStr­ucture(JournalStructureLocalServiceImpl.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at­ sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:122)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionI­nterceptor.java:71)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice­.java:57)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.security.pacl.PACLAdvice.invoke(PACLAdvice.java:51)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMet­hodInvocation.java:118)
at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.jav­a:211)
at com.sun.proxy.$Proxy221.addStructure(Unknown Source)
at com.liferay.portlet.journal.service.JournalStructureLocalServiceUtil.addStructur­e(JournalStructureLocalServiceUtil.java:295)
at com.liferay.resourcesimporter.util.FileSystemImporter.doAddJournalStructures(Fil­eSystemImporter.java:477)
at com.liferay.resourcesimporter.util.ResourceImporter.addJournalStructures(Resourc­eImporter.java:121)
at com.liferay.resourcesimporter.util.FileSystemImporter.setupAssets(FileSystemImpo­rter.java:744)
at com.liferay.resourcesimporter.util.FileSystemImporter.doImportResources(FileSyst­emImporter.java:530)
at com.liferay.resourcesimporter.util.ResourceImporter.importResources(ResourceImpo­rter.java:35)
at com.liferay.resourcesimporter.messaging.HotDeployMessageListener.doReceive(HotDe­ployMessageListener.java:166)
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListe­ner.java:25)
... 5 more


Please help me how to resolve the issues.

I have not added any articles,structures etc ,I have just added sitemap.json

liferay-pulgin-package.properties:

name=Test Resourceimporter
module-group-id=liferay
module-incremental-version=1
tags=
short-de­scription=
change-log=
page-url=http://www.liferay.com
author=Liferay, Inc.
licenses=LGPL
liferay-versions=6.1.1

#required-deployment-contexts=\
#resources­-importer-web
#resources-importer-developer-mode-enabled=true
在 13-6-4 上午10:16 发帖。
@Ramakanth - Have you tried setting required-deployment-contexts in your liferay-plugin-package.properties as follows?

required-deployment-contexts=\
resources-importer-web

This declares your theme’s dependency on the resources importer plugin.
http://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/­6-1-importing-resources-with-themes
在 13-6-4 上午11:50 发帖。
Hi Jim,

Thanks for your reply.

I have tried setting below property in iferay-plugin-package.properties but still I am getting same warnings and errors.
required-deployment-contexts=\
resources-importer-web
在 13-6-4 下午10:39 发帖以回复 Jim Hinkey
Awesome stuff thanks!,
What about performance? should we shutdown the lucene index during the deployment and site template instantiation ?
在 13-12-3 上午12:38 发帖。
How can I get the values to set up the webform portlet?

I'm new in liferay and I'm getting crazy to setup and customize this webform. What are the options that I can set through sitemap.json? Where can I get a list of that options?

Thank you!
在 14-9-3 上午6:33 发帖。
Hm…, I'm reluctant to download the "latest version", as it might not be suitable for 6.1 CE GA3 (internal version number 6.1.2). Is this true?

I fail to access any prior version of the Resources Importer. Any help appreciated.
在 14-10-28 上午4:00 发帖以回复 Jim Hinkey
Surprise!

Having pushed all sorts of buttons ("never push this button again"), I ran into the Update Manager listing "Resources Imported Web" "6.1.1.4-ce-ga3" as "Up to Date".

Must have been included off the shelf :-)
在 14-10-28 上午4:24 发帖以回复 Reiner Saddey