Tag: groovy

Spring集成 – 外部化JDBC查询

有没有一种简单的方法可以从jdbc出站网关外部化大sql查询,而不是内联它? 原因是我们需要做很多大的查询,我们希望将它们放在自己的文件中,或者至少将它们外化到bean中。 一些警告: 我无法控制数据库,所以我无法在那里创建任何东西(例如存储过程) 我不想仅为这个问题创建类,我只是想组织/重构它,而不是让它更复杂,引入许多其他步骤 我更喜欢创建裸.sql文件,但是将查询放在带有bean的xml中也是可以的 我没有选择使用hibernate,坚持使用spring集成jdbc 关于如何更好地组织这个的建议,考虑到我们将有许多其他出站网关,欢迎:) 例如,我不希望在“int-jdbc:outbound-gateway”元素中使用SQL内联,如下所示: 我用答案做了什么 只是: 它也适用于bean内部使用的“:payload”参数。

在Java超类中使用groovy调用私有方法

我有一个带有私有方法的抽象Java类MyAbstractClass 。 MyConcreteClass有一个具体的实现。 public class MyAbstractClass { private void somePrivateMethod(); } public class MyConcreteClass extends MyAbstractClass { // implementation details } 在我的常规测试课中,我有 class MyAbstractClassTest { void myTestMethod() { MyAbstractClass mac = new MyConcreteClass() mac.somePrivateMethod() } } 我得到一个错误,即somePrivateMethod没有这样的方法签名。 我知道groovy可以调用私有方法,但我猜测问题是私有方法是在超类中,而不是MyConcreteClass 。 有没有办法像这样调用超类中的私有方法(除了使用像PrivateAccessor这样的东西)? 谢谢Jeff

为什么输出显示错误的顺序?

我正在尝试编写一个包装另一个命令的Groovy脚本,并且遇到了stdout / stderr命令的问题。 我的脚本如下: #!/usr/bin/env groovy synchronized def output = “” def process = “qrsh ${args.join(‘ ‘)}”.execute() def outTh = Thread.start { process.in.eachLine { output += it System.out.println “out: $it” } } def errTh = Thread.start { process.err.eachLine { output += it System.err.println “err: $it” } } outTh.join() errTh.join() process.waitFor() System.exit(process.exitValue()) 我的问题是输出没有按正确的顺序出现在终端上。 下面是包装器的输出。 [] wrap.groovy […]

Spring-Boot无法在WAR文件中查找JSP页面

运行spring-boot项目(java -jar /path/to/war.war)时,找不到.jsp文件。 使用@ResponseBody注释的方法可以正常工作。 视图解析器提供了JSP页面的正确路径,但找不到它们。 该项目有一个配置类,没有web.xml。 配置类: @Configuration @EnableAutoConfiguration @EnableWebMvc @ComponentScan (basePackages = “org.ghc.security.web”) class ScMain extends WebMvcConfigurerAdapter { // SpringBoot BootStrap… static void main (String[] args) { ApplicationContext ctx = SpringApplication.run (ScMain, args) System.out.println(“Let’s inspect the beans provided by Spring Boot:”); String[] beanNames = ctx.getBeanDefinitionNames(); Arrays.sort(beanNames); beanNames.each { beanName -> System.out.println(beanName); } } @Bean […]

如何以os独立方式设置Gradle`options.bootClasspath`?

因为我的Java源代码和目标必须兼容JRE 1.6,所以我需要将options.bootClasspath设置为包含1.6版本的rt.jar和jce.jar 。 它必须建立在Windows和Unix(Linux / Solaris)上。 这样做的正确方法是什么? 我现在在我的顶级build.gradle使用以下方法,它可以工作,但它似乎远非优雅,尤其是依赖于os的分隔符:或; : import org.apache.tools.ant.taskdefs.condition.Os subprojects { apply plugin: ‘java’ compileJava { sourceCompatibility = 1.6 targetCompatibility = 1.6 def java6_home = System.getenv(“JAVA_HOME_6”) def java6_lib = “C:/localdata/Program Files (x86)/Java/jdk1.6.0_45/jre/lib/” if (java6_home != null) { java6_lib = java6_home + “/jre/lib/” } def sep = ‘:’ if (Os.isFamily(Os.FAMILY_WINDOWS)) { sep = ‘;’ […]

Selenium UnreachableBrowserException – SoapUI中的“无法启动新会话”Groovy TestStep

我在Win7 x32上使用SoapUI Pro 5.1.2,并尝试在Groovy TestStep中连接到Selenium Webdriver。 为此,我在$SOAP_HOME$\bin\ext文件夹中添加了selenium-standalone-server.jar v2.45.0。 我的Groovy TestStep代码: import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver System.setProperty(‘webdriver.chrome.driver’, ‘C:\\\\Windows\\system32\\chromedriver.exe’) log.info(System.getProperty(‘webdriver.chrome.driver’)) //got ‘C:\\Windows\system32\chromedriver.exe’ WebDriver driver = new ChromeDriver() // this line causes error driver.get(‘http://google.com’) driver.quit() 当我尝试运行此步骤时,SoapUI返回消息: org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure. Build info: version: […]

Maven Groovy和Java + Lombok

我正在尝试将groovy添加到利用Lombok的现有Java Maven项目中。 不幸的是,当我使用下面的pom片段启用groovy-maven-eclipse编译器时,我的lombok注释的java文件无法编译。 据我所知,Lombok根本没有参与java文件的编译。 maven-compiler-plugin 2.3.1 groovy-eclipse-compiler true org.codehaus.groovy groovy-eclipse-compiler 2.6.0-01-SNAPSHOT 我还应该指出,在eclipse中(使用m2e)一切正常。 当我尝试做一个mvn包时,我的问题出现了。

如何在gradle任务中通过scp复制目录?

使用Gradle通过scp复制一堆文件的干净而优雅的方法是什么? 我目前看到的两种方式是: 使用Apache Wagon,如下所述: http : //markmail.org/message/2tmtaffayhq25g4s 使用Exec任务通过命令行执行scp 有没有更好(更明显)的方法来解决这个问题?

Groovy / Java在括号上拆分字符串“(”

我正在尝试执行类似以下的拆分: println “Hello World(1)”.split(“W”); 输出: [Hello , orld(1)] 我想执行这个分裂: println “Hello World(1)”.split(“(“); 但我明白了: Caught: java.util.regex.PatternSyntaxException: Unclosed group near index 1 ( 有没有办法逃脱这个括号? 任何帮助表示赞赏。

您是否可以使用Groovy元编程来覆盖Java类上的私有方法

我正在尝试使用元编程覆盖Java类上的私有方法。 代码看起来像这样: // Java class public class MyClass{ private ClassOfSomeSort property1; private ClassOfSomeOtherSort property2; public void init(){ property1 = new ClassOfSomeSort(); property2 = new ClassOfSomeOtherSort(); doSomethingCrazyExpensive(); } private void doSomethingCrazyExpensive(){ System.out.println(“I’m doing something crazy expensive”); } } // Groovy class public class MyClassTest extends Specification{ def “MyClass instance gets initialised correctly”(){ given: ExpandoMetaClass emc = […]