Forum Discussion

ITAbteilung's avatar
ITAbteilung
Contributor
15 years ago

external Scriptfolder and wargenerator

Hi,

I use the feature of the external Script-folder in SoapUI. Like you explain in your tutorials, I set the path in the SoapUI-Preferences. In the Script-Folder I have some subdirectories that contain .groovy files. It works fine!
Now I want to deploy my Mockups on a Webserver (Tomcat) using your "wargenerator" script. It provides the "-c" parameter to define the external Script-Folder. The command line looks like this:
wargenerator.sh -w true -d ./TomcatInstance/webapps/SICONTACTMAN/ -c ./SoapMocks/externalScripts/ ./SoapMocks/contactManagement-soapui-project.xml
Now there are some error:

1)
 16:36:19,316 ERROR [JarPackager] java.io.FileNotFoundException: ./SoapMocks/externalScripts/Tools (Is a directory)
Isn't it possible to use subdirectories anymore?

2) When I put my .groovy files directly into the Script-Folder, they are copied to the webapps dir
 16:36:19,316 INFO  [JarPackager] Coping files from /app/norman/norman12/Mocks/sim01/./SoapMocks/externalScripts to /app/norman/norman12/Mocks/sim01/./TomcatInstance/webapps/SICONTACTMAN/WEB-INF/scripts
but it is not possible to access the classes in these scripts. When I try to access the class "FileHandler" (defined in "FileHandler.groovy"), I get

16:48:37,186 ERROR [SoapUI] An error occured [No such property: FileHandler for class: Script1], see error log for details
java.lang.Exception: No such property: FileHandler for class: Script1
at com.eviware.soapui.impl.wsdl.mock.WsdlMockResponse.evaluateScript(WsdlMockResponse.java:359)
at com.eviware.soapui.impl.wsdl.mock.WsdlMockResponse.execute(WsdlMockResponse.java:264)
at com.eviware.soapui.impl.wsdl.mock.WsdlMockOperation.dispatchRequest(WsdlMockOperation.java:259)
at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchPostRequest(WsdlMockRunner.java:290)
at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchRequest(WsdlMockRunner.java:375)
at com.eviware.soapui.mockaswar.MockAsWarServlet$MockServletSoapUICore.dispatchRequest(MockAsWarServlet.java:245)
at com.eviware.soapui.mockaswar.MockAsWarServlet.service(MockAsWarServlet.java:183)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:595)
Caused by: groovy.lang.MissingPropertyException: No such property: FileHandler for class: Script1
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
at Script1.run(Script1.groovy:14)
at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:96)
at com.eviware.soapui.impl.wsdl.mock.WsdlMockResponse.evaluateScript(WsdlMockResponse.java:355)
... 19 more


How does it work?

Thanks in advance
and thanks for all my other questions that have been answered quickly and competently,
cheers Patrick

13 Replies

  • Hi Robert,

    thanks for the update. I tried the nightly build on friday and the one of today. For all projects that worked with the wargenerator before, there is now an exception. Here is the INFO stack followed by the exception:

    test@testmachine:~/Mocks/sim03> ../SoapUI/soapui-pro-4.0.2-nightly/bin/wargenerator.sh -w true -d TomcatInstance/webapps/TEST/ SoapMocks/ContactManagement-soapui-project.xml
    ================================
    =
    = SOAPUI_HOME = /appfolder/Mocks/SoapUI/soapui-pro-4.0.2-nightly
    =
    ================================
    soapUI Pro 4.0.2-SNAPSHOT MockAsWar Generator
    11:47:48,962 INFO [DefaultSoapUICore] Creating new settings at [/appfolder/soapui-settings.xml]
    11:47:49,544 WARN [SoapUIProGroovyScriptEngineFactory] Missing scripts folder [/appfolder/Mocks/sim03/scripts]
    11:47:49,546 INFO [DefaultSoapUICore] Adding listeners from [/appfolder/Mocks/SoapUI/soapui-pro-4.0.2-nightly/bin/listeners/demo-listeners.xml]
    11:47:50,436 INFO [WsdlProject] Loaded project from [file:/appfolder/Mocks/sim03/SoapMocks/ContactManagement-soapui-project.xml]
    11:47:50,726 INFO [WsdlProject] Saved project [ContactManagement] to [/tmp/ContactManagement-project.xml - 57980 bytes
    11:47:50,726 INFO [SoapUIProMockAsWarGenerator] Creating WAR file with endpoint [ContactManagement]
    11:47:50,735 INFO [MockAsWar] Creating WAR directory in [/appfolder/Mocks/sim03/TomcatInstance/webapps/TEST]
    11:47:50,738 INFO [JarPackager] Coping files from /appfolder/Mocks/SoapUI/soapui-pro-4.0.2-nightly/bin/../lib to /appfolder/Mocks/sim03/TomcatInstance/webapps/TEST/WEB-INF/lib
    11:47:50,901 INFO [WsdlProject] Loaded project from [file:/appfolder/Mocks/sim03/TomcatInstance/webapps/TEST/WEB-INF/soapui/ContactManagement-project.xml]
    Exception in thread "SwingWorker" java.lang.NullPointerException
    at java.io.File.<init>(File.java:194)
    at com.eviware.soapui.tools.MockAsWarPro.copyProjectFile(SourceFile:63)
    at com.eviware.soapui.tools.MockAsWar.prepareWarFile(MockAsWar.java:228)
    at com.eviware.soapui.tools.MockAsWarPro.prepareWarFile(SourceFile:35)
    at com.eviware.soapui.tools.MockAsWar$1.construct(MockAsWar.java:90)
    at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46)
    at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:149)
    at java.lang.Thread.run(Thread.java:595)

    It neither works with .xml project files, nor with composite projects and it has nothing to do with the external script option. It also seems that the content of the project doesn't matter because it appears on all my projects and I also tried to set up a dummy project with very basic content, too.

    Please take a look at that,
    thanks in advance,
    Pat