gibi java ile kod yürütme sonucu tarafından dize içinde harika kod parçalarını değiştirin UUID, geçerli tarih ...ben göndermek istiyorum ve bu xml bazı dinamik kısmını ihtiyaç yapılandırma dosyasında xml veri var SoapUI
gibi SoapUI yılındadoğrudan böyle xml içindeki Groovy komut dosyasını kullanabilirsiniz:
<?xml version='1.0' encoding='utf-8'?>
<Envelope>
<Body>
<date>${=new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX\).format(new Date())}</date>
<uddi>${=java.util.UUID.randomUUID()}</uddi>
<Body>
<Envelope>
ve bu
<?xml version='1.0' encoding='utf-8'?>
<Envelope>
<Body>
<date>2016-04-07T15:29:43.729+02:00</date>
<uddi>5f8020d3-1fe0-4755-8056-cdef536c98b9</uddi>
<Body>
<Envelope>
Bu kod ile uğraş olsun ve SimpleDa için UUID için iyi çalışabilir ancak teFormat. tarih için
String sExecUUID = "\"UUID\" -> ${java.util.UUID.randomUUID()} !!!"; // OK : "UUID" -> 5f8020d3-1fe0-4755-8056-cdef536c98b9 !!!
String sExecDate = "\"Date\" -> ${new java.text.SimpleDateFormat(\"yyyy-MM-dd'T'HH:mm:ssXXX\").format(new Date())} !!!"; // KO
//String sExec = sExecUUID;
String sExec = sExecDate;
sExec = sExec.replace("\\","\\\\"); // Replace \ --> \\
sExec = sExec.replace("\n","\\n"); // Replace \n --> \\n
sExec = sExec.replace("\r","\\r"); // Replace \n --> \\n
sExec = sExec.replace("\"","\\\""); // Replace " --> \"
sExec = "println \""+sExec+"\"";
// call groovy expressions from Java code
GroovyShell shell = new GroovyShell();
Object value = shell.evaluate(sExec);
System.out.println(value);
istisnadır:
org.codehaus.groovy.control.MultipleCompilationErrorsException: başlangıç başarısız oldu: Script1.groovy: 1: Beklenmeyen kömürü: '\' @ hattını 1, kolon 55. ew java.text.SimpleDateFormat (\ "yyyy-MM-
ben yerine "
arasında SimpleDateFormat benim \"
nedeniyle olduğunu biliyorum amakaçmak zorunda println
kullanmak için.
Bunu nasıl çalıştırabilirim?
SimpleTemplateEngine bkz çalıştığını, size Jeremie ederiz! – Alex