如果我有课:
class A {
public A() { }
}
Run Code Online (Sandbox Code Playgroud)
和另一个
class B extends A {
public B() { }
}
Run Code Online (Sandbox Code Playgroud)
有没有办法B.B() 不打电话A.A()?
使用以下代码:
@Entity
@Table(uniqueConstraints=[@UniqueConstraint(columnNames=["account","name"])])
class Friend {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
public Long id
@ManyToOne
public Account account
public String href
public String name
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
org.hibernate.AnnotationException: Unable to create unique key constraint (account, name) on table Friend: account not found
Run Code Online (Sandbox Code Playgroud)
这似乎与@ManyToOne约束有关,我想这实际上创建了一个单独的UniqueConstraint ???
在任何情况下,如果我把它拿出来,没有关于UniqueConstraint的抱怨,但是还有另一个错误让我相信它必须留在.
org.hibernate.MappingException: Could not determine type for: com.mksoft.fbautomate.domain.Account, at table: Friend, for columns: [org.hibernate.mapping.Column(account)]
Run Code Online (Sandbox Code Playgroud)
任何提示如何创建这样一个所需的约束(即,帐户和名称的每个组合只出现一次???)
谢谢!
米莎
我正在尝试使用gradle运行我的Jar文件.
我想出了以下内容:
task runJar(dependsOn:[jar]){
ant.java(jar:,fork:true)
}
Run Code Online (Sandbox Code Playgroud)
但是,我无法找到jar文件的路径.任何帮助非常感谢.谢谢!
米莎
编辑:好的,这很奇怪.这个任务在编译之前运行等等.
编辑:修正.关键是doLast {}符号,或者简写
task runJar(dependsOn:"jar")<<{
ant.java(jar:"${libsDir}${File.separator}${archivesBaseName}.jar",fork:true)
}
Run Code Online (Sandbox Code Playgroud)
米莎
有没有办法从Gradle胖罐中省去某些路径.
我在用:
jar {
from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
Run Code Online (Sandbox Code Playgroud)
从
http://docs.codehaus.org/display/GRADLE/Cookbook
并且如果可能的话,想要省略META-INF目录.
谢谢!米莎
这就是我想出的.它有效,但我想知道是否有更优雅的东西.谢谢!
米莎
/* Copyright (c) 2010 Misha Koshelev. All Rights Reserved.
*
* TODO:
* - Add Linux support
*/
package com.mksoft.common;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URI;
import java.net.URISyntaxException;
/**
* Run specified class within this JAR file on system startup.
*
* @author Misha Koshelev
*/
public class RunOnSystemStartup {
/*
* Constants
*/
protected final static String osName=System.getProperty("os.name");
protected final static String fileSeparator=System.getProperty("file.separator");
protected final static String javaHome=System.getProperty("java.home");
protected …Run Code Online (Sandbox Code Playgroud) 我在这里阅读 http://groovy.codehaus.org/modules/http-builder/doc/handlers.html "如果响应发送重定向状态代码,这由Apache HttpClient内部处理,默认情况下只是通过将请求重新发送到新网址来关注重定向.您无需执行任何特殊操作即可遵循302响应."
当我只使用没有闭包的get()或post()方法时,这似乎工作正常.
但是,当我使用一个闭包时,我似乎失去了302处理.我有办法自己处理吗?谢谢
ps这是我的日志输出,显示它是302响应
[java] FINER: resp.statusLine: "HTTP/1.1 302 Found"
Run Code Online (Sandbox Code Playgroud)
这是相关代码:
// Copyright (C) 2010 Misha Koshelev. All Rights Reserved.
package com.mksoft.fbbday.main
import groovyx.net.http.ContentType
import java.util.logging.Level
import java.util.logging.Logger
class HTTPBuilder {
def dataDirectory
HTTPBuilder(dataDirectory) {
this.dataDirectory=dataDirectory
}
// Main logic
def logger=Logger.getLogger(this.class.name)
def closure={resp,reader->
logger.finer("resp.statusLine: \"${resp.statusLine}\"")
if (logger.isLoggable(Level.FINEST)) {
def respHeadersString='Headers:';
resp.headers.each() { header->respHeadersString+="\n\t${header.name}=\"${header.value}\"" }
logger.finest(respHeadersString)
}
def text=reader.text
def lastHtml=new File("${dataDirectory}${File.separator}last.html")
if (lastHtml.exists()) {
lastHtml.delete()
}
lastHtml<<text
new XmlSlurper(new org.cyberneko.html.parsers.SAXParser()).parseText(text)
}
def processArgs(args) {
if (logger.isLoggable(Level.FINER)) …Run Code Online (Sandbox Code Playgroud) 我使用几个不同的版本来执行此操作但似乎都导致此错误:
[致命错误]:1:171:前缀"xmlns"无法明确绑定到任何名称空间; "xmlns"的命名空间也不能明确地绑定到任何前缀.
我加载html为:
// Load html file
def fis=new FileInputStream("2.html")
def html=new XmlSlurper(new org.cyberneko.html.parsers.SAXParser()).parseText(fis.text)
Run Code Online (Sandbox Code Playgroud)
我试过的版本:
http://johnrellis.blogspot.com/2009/08/hmmm_04.html
import groovy.xml.StreamingMarkupBuilder
import groovy.xml.XmlUtil
def streamingMarkupBuilder=new StreamingMarkupBuilder()
println XmlUtil.serialize(streamingMarkupBuilder.bind{mkp.yield html})
Run Code Online (Sandbox Code Playgroud)
http://old.nabble.com/How-to-print-XmlSlurper%27s-NodeChild-with-indentation--td16857110.html
// Output
import groovy.xml.MarkupBuilder
import groovy.xml.StreamingMarkupBuilder
import groovy.util.XmlNodePrinter
import groovy.util.slurpersupport.NodeChild
def printNode(NodeChild node) {
def writer = new StringWriter()
writer << new StreamingMarkupBuilder().bind {
mkp.declareNamespace('':node[0].namespaceURI())
mkp.yield node
}
new XmlNodePrinter().print(new XmlParser().parseText(writer.toString()))
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?
谢谢!米莎
我正在寻找一个用Java编写的强大的 Javascript解析器 - 我指的是一个能够处理大多数真实世界Javascript的Javascript解析器.
我只对解析 Javascript 感兴趣,而不是执行它.
我找到了Rhino:http: //groups.google.com/group/mozilla.dev.tech.js-engine.rhino/browse_thread/thread/1eff23a8ee57b991
我错过了什么吗?这是最好的解决方案吗?
谢谢!米莎
我想实现一个同时具有 AdvancedTableFormat 和 WritableTableFormat 接口的 Glazed List。
我在这里阅读: http: //www.jroller.com/aalmiray/entry/glazedlists_groovy_not_your_regular
对于一个界面来说,在 Groovy 中使用“as”关键字似乎可以实现这一点:
# return new EventTableModel(linksList, [
# getColumnCount: {columnNames.size()},
# getColumnName: {index -> columnNames[index]},
# getColumnValue: {object, index ->
# object."${columnNames[index].toLowerCase()}"
# }] as TableFormat)
Run Code Online (Sandbox Code Playgroud)
是否可以以某种方式为两个接口执行此操作?如果是这样怎么办?
谢谢你!
米沙
很抱歉打扰 - 也许这是一个非常简单的问题 - 但由于某种原因,下面的版本无法解析,而带有set的版本工作正常.事实上,如果我只是采取设置版本并用列表替换set我得到:
嵌套异常是org.hibernate.InvalidMappingException:无法从无效映射中解析映射文档
谢谢Misha
<!-- bi-directional one-to-many association to SpreadsheetImportTemplateColumn -->
<list name="columns">
<!--
<set name="columns" lazy="false" inverse="true"
cascade="all-delete-orphan" sort="natural"
order-by="voided asc, preferred desc, date_created desc">
-->
<key column="template_id" not-null="true" />
<!--
<one-to-many class="SpreadsheetImportTemplateColumn" />
</set>
-->
</list>
Run Code Online (Sandbox Code Playgroud) 我想转换这个bash脚本:
#!/bin/bash
if ! [ $# == 2 ]; then
echo Usage: update-module admin-password module-file
exit 1
fi
if ! [ -f $2 ]; then
echo Error: module file $2 does not exist
exit 1
fi
curl -c /tmp/cookie.txt -d uname=admin -d pw=${1} http://localhost:8080/openmrs/loginServlet
curl -b /tmp/cookie.txt -F action=upload -F update=true -F moduleFile=\@$2 http://localhost:8080/openmrs/admin/modules/module.list
rm -rf /tmp/cookie.txt > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
进入可以放入maven pom.xml文件的东西.
请注意,module-file是一个jar文件(重命名为.omod),理想情况下会在命令行中指定admin-password,类似于maven原型的命令行参数:create http://maven.apache.org/guides/mini /guide-creating-archetypes.html#Alternative_way_to_start_creating_your_Archetype
(理想情况下,主机名也应在命令行中指定).
谢谢
你的Misha
java ×6
groovy ×4
gradle ×2
hibernate ×2
http ×2
builder ×1
constructor ×1
glazedlists ×1
html ×1
javascript ×1
macos ×1
maven-2 ×1
oop ×1
orm ×1
post ×1
startup ×1
super ×1
windows ×1
xmlslurper ×1