Foros de discusión

Service Builder does not generates code

Ohad Raz, modificado hace 11 años.

Service Builder does not generates code

New Member Mensajes: 23 Fecha de incorporación: 27/06/12 Mensajes recientes
Hi,

I read about the service builder, and it sound like a great tool.
So I've tried it, but it won't work...
I created a new Liferay project, created a service.xml in the docroot/WEB-INF/ directory, and have it's content to be:

<!--?xml version="1.0" encoding="UTF-8"?-->


<service-builder package-path="poc.carrier">
   <author>&lt;a href="ohad.raz@orbitz.com"&gt;Raz, Ohad&lt;/a&gt;</author>
   <namespace>carrier</namespace>

   <entity name="AirCarrier" table="PP_AIR_CARRIER" local-service="true" remote-service="true" cache-enabled="true">

      <!-- PK fields -->
      <column db-name="PP_AIR_CARRIER_ID" name="airCarrierID" type="long" primary="true" />

      <!-- Audit fields -->
      <column db-name="CREATE_DATE" name="createDate" type="Date" />
      <column db-name="MODIFIED_DATE" name="modifiedDate" type="Date" />

      <!-- Other fields -->
      <column db-name="CARRIER_CODE" name="carrierCode" type="String" />
      <column db-name="CARRIER_NAME" name="carrierName" type="String" />

      <!-- Order -->
      <order by="asc">
         <order-column name="carrierCode" />
      </order>

      <!-- Finder methods -->
      <finder name="carrierCode" return-type="Collection">
         <finder-column name="carrierCode" />
      </finder>
   </entity>
</service-builder>


Now when I try running the plug-in's "Build Services" it gives me the following error:

[Console output redirected to file:/home/oraz/projects/partner-portal/.metadata/.plugins/com.liferay.ide.eclipse.sdk/sdk.log]
Buildfile: /home/oraz/projects/partner-portal/liferay-sdk/portlets/carrier-service-builder-poc-portlet/build.xml
build-service:
     [java] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portlet.documentlibrary.util.DLProcessorRegistryUtil' defined in class path resource [META-INF/util-spring.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'dLProcessorRegistry' of bean class [com.liferay.portlet.documentlibrary.util.DLProcessorRegistryUtil]: Bean property 'dLProcessorRegistry' is not writable or has an invalid setter method. Did you mean 'DLProcessorRegistry'?
     [java] 	at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:194)
     [java] 	at org.apache.tools.ant.taskdefs.Java.run(Java.java:771)
     [java] 	at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:221)
     [java] 	at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135)
     [java] 	at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
     [java] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
     [java] 	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
     [java] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
     [java] 	at org.apache.tools.ant.Task.perform(Task.java:348)
     [java] 	at org.apache.tools.ant.Target.execute(Target.java:392)
     [java] 	at org.apache.tools.ant.Target.performTasks(Target.java:413)
     [java] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
     [java] 	at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
     [java] 	at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
     [java] 	at org.eclipse.ant.internal.launching.remote.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
     [java] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
     [java] 	at org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:424)
     [java] 	at org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java:138)
     [java] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portlet.documentlibrary.util.DLProcessorRegistryUtil' defined in class path resource [META-INF/util-spring.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'dLProcessorRegistry' of bean class [com.liferay.portlet.documentlibrary.util.DLProcessorRegistryUtil]: Bean property 'dLProcessorRegistry' is not writable or has an invalid setter method. Did you mean 'DLProcessorRegistry'?
     [java] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1125)
     [java] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:857)
     [java] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:423)
     [java] 	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
     [java] 	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
     [java] 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
     [java] 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
     [java] 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
     [java] 	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
     [java] 	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:122)
     [java] 	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:76)
     [java] 	at com.liferay.portal.spring.context.ArrayApplicationContext.<init>(ArrayApplicationContext.java:31)
     [java] 	at com.liferay.portal.spring.util.SpringUtil.loadContext(SpringUtil.java:56)
     [java] 	at com.liferay.portal.util.InitUtil.initWithSpring(InitUtil.java:161)
     [java] 	at com.liferay.portal.tools.servicebuilder.ServiceBuilder.main(ServiceBuilder.java:117)
     [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [java] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java] 	at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217)
     [java] 	at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152)
     [java] 	... 19 more
     [java] Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'dLProcessorRegistry' of bean class [com.liferay.portlet.documentlibrary.util.DLProcessorRegistryUtil]: Bean property 'dLProcessorRegistry' is not writable or has an invalid setter method. Did you mean 'DLProcessorRegistry'?
     [java] 	at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:793)
     [java] 	at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:645)
     [java] 	at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:78)
     [java] 	at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:59)
     [java] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1122)
     [java] 	... 39 more
     [java] Java Result: -1
     [echo] ${service.test.output}
    [mkdir] Created dir: /home/oraz/projects/partner-portal/liferay-sdk/portlets/carrier-service-builder-poc-portlet/docroot/WEB-INF/service-classes
compile-java:
      [zip] Warning: skipping zip archive /home/oraz/projects/partner-portal/liferay-sdk/portlets/carrier-service-builder-poc-portlet/docroot/WEB-INF/lib/carrier-service-builder-poc-portlet-service.jar because no files were included.
   [delete] Deleting directory /home/oraz/projects/partner-portal/liferay-sdk/portlets/carrier-service-builder-poc-portlet/docroot/WEB-INF/service-classes
BUILD SUCCESSFUL
Total time: 4 seconds
</init></init></init>


So I dug into it, and realized that I had an artifact (say A1) that went right into the ${CATALINA_HOME}/lib/ext directory, that had a dependency of the complete spring artifacts. This yields that all spring jars were in the ${CATALINA_HOME}/lib/ext directory (including spring-context.jar).
I figure that when Service Builder executes, it tries to create a spring context, and seems to fail.
Anyway, that notorious A1 artifact actually uses only spring-beans (and spring-core by dependency), so I could replace the complete spring jars with only those specific two (i.e., spring-beans.jar and spring-core.jar).
Once I did that, the server succeeded to got up and run OK, and the Service Builder successfully generated its code.
So I guess my issue is solved.

However,
Shouldn't it be treated as a bug of Liferay IDE?
I mean, regardless of the artifacts one have in ${CATALINA_HOME/lib/ext} directory, one would expect Service Builder to be able to generate its code.

Cheers,
Ohad
thumbnail
Gregory Amerson, modificado hace 11 años.

RE: Service Builder does not generates code

Liferay Legend Mensajes: 1123 Fecha de incorporación: 16/02/10 Mensajes recientes
Hi Ohad,

Thanks for this report. Please do open up a ticket in jira using the LPS project. And then for the component choose service builder. Thanks again for taking the time to report this issue.
Ohad Raz, modificado hace 11 años.

RE: Service Builder does not generates code

New Member Mensajes: 23 Fecha de incorporación: 27/06/12 Mensajes recientes
Filed IDE-720.

Cheers,
Ohad