我正在使用需要识别FORTRAN字符串文字的ply编写解析器.这些引号用单引号引用,转义字符加倍单引号.即
'I don''t understand what you mean'
是一个有效的转义FORTRAN字符串.
Ply以正则表达式输入.到目前为止我的尝试不起作用,我不明白为什么.
t_STRING_LITERAL = r"'[^('')]*'"
有任何想法吗?
我在Jenkins 1.502中有一个带有jenkins-cobertura插件版本1.9.3的多模块maven项目.我的cobertura.xml文件是在web-app模块中生成的,当我在Jenkins中浏览项目的工作区时,我可以看到它.我已经尝试了多种不同的方法来处理后构建操作中的路径设置以指向cobertura.xml文件,但插件一直说它无法找到它.我收到错误:
[Cobertura]使用"app/web-app/target/site/cobertura/cobertura.xml"模式相对于'C:\ Jenkins\jobs\Dev - appName - trunk\workspace'找不到覆盖结果
我的web应用程序的maven pom.xml在pom.xml的部分中设置了cobertura,如下所示:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<formats>
<format>xml</format>
<format>html</format>
</formats>
<instrumentation>
<excludes>
<exclude>**/*Test.class</exclude>
<exclude>**/Mock*.class</exclude>
</excludes>
</instrumentation>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>cobertura</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
同样在jenkins中,我的maven构建选项如下:
-Pqa clean cobertura:cobertura安装
编辑 我发现了我的问题,我将文件命名为"cobertura.xml"而不是"coverage.xml"或更好地将它们全部用
**/target/site/cobertura/*.xml
我正在尝试建立一个PL/SQL包依赖项列表,以便我可以帮助为我的包设置一个自动构建脚本,以便在测试服务器上运行.有没有办法从单个包开始(理想情况下,由名称标识的"根"包),然后查找所有依赖项,以及它们必须编译的顺序?依赖关系已在我的个人架构中完全解决(所以至少我有一个地方可以开始 - 但我下一步去哪里?).
(Oracle 10.2)
编辑:
正在使用的构建工具将使用构建顺序,并将从源代码控制中按顺序检索这些文件,然后将它们传递给Oracle进行编译(实际构建工具本身是用Python或Java编写的,或者两者兼而有之 - 我不是有权访问来源).基本上,构建工具需要输入一个文件列表,按照它们必须编译的顺序进行编译,并在源代码管理中访问这些文件.如果它有,那么一切都会很好.
编辑:
感谢整洁的脚本.不幸的是,构建过程主要不在我手中.该过程基于构建工具,该工具由我们正在集成的产品的供应商构建,这就是为什么我可以为构建过程提供的唯一输入是按照需要构建的顺序的文件列表.如果存在编译器错误,则构建工具失败,我们必须手动提交新构建的请求.因此,按照编译顺序排列的文件列表非常重要.
编辑:
发现这个:http://www.oracle.com/technology/oramag/code/tips2004/091304.html 给我任何对象的依赖项.现在我只需要正确的订购...如果我得到了一些工作,我会在这里发布.
编辑:(带代码!)
我知道,总的来说,甲骨文不需要这种东西,但对于那些仍然感兴趣的人来说......
我拼凑了一个似乎能够获得构建顺序的小脚本,这样所有的包都将以正确的顺序构建,没有依赖相关的错误(关于pacakges)第一次:
declare
type t_dep_list is table of varchar2(40) index by binary_integer;
dep_list t_dep_list;
i number := 1;
cursor c_getObjDepsByNameAndType is
--based on a query found here: http://www.oracle.com/technology/oramag/code/tips2004/091304.html
select lvl, u.object_id, u.object_type, LPAD(' ', lvl) || object_name obj
FROM (SELECT level lvl, object_id
FROM SYS.public_dependency s
START WITH s.object_id = (select object_id
from user_objects
where object_name = …Run Code Online (Sandbox Code Playgroud) 我正在寻找建立一个允许使用分层过滤查询数据的工具.我有一些想法,我将如何去做,但想知道是否有任何建议或建议可能更有效.
例如,假设用户正在搜索作业.工作领域如下.
1: Scotland
2: --- West Central
3: ------ Glasgow
4: ------ Etc
5: --- North East
6: ------ Ayrshire
7: ------ Etc
Run Code Online (Sandbox Code Playgroud)
用户可以搜索特定的(即格拉斯哥)或更大的区域(即苏格兰).
我正在考虑的两种方法是:
SELECT * FROM Jobs WHERE Category IN Areas.childrenField.我从两者看到的问题是:
关于最佳方法的任何想法,建议或建议?我正在使用C#ASP.NET和MSSQL 2005 DB.
任何人都知道如何根据日期(出生日期)获得年龄
我想到这样的事情
string age = DateTime.Now.GetAccurateAge();
Run Code Online (Sandbox Code Playgroud)
输出将是20年5月20日的一些事情
我有这样的查询:
select data_name
into v_name
from data_table
where data_table.type = v_t_id
Run Code Online (Sandbox Code Playgroud)
通常,此查询应该只返回一行.如果没有匹配v_t_id,程序将失败并显示"No data found"异常.
我知道我可以在PL/SQL中处理这个问题,但我想知道是否有办法只在查询中执行此操作.作为测试,我尝试过:
select case
when subq.data_name is null then
'UNKNOWN'
else
subq.data_name
end
from (select data_name
from data_table
where data_table.type = '53' /*53 does not exist, will result in 0 rows. Need fix this...*/
) subq;
Run Code Online (Sandbox Code Playgroud)
......但这显然不起作用(因为subq空是不一样的subq.data_name is null).这甚至是可能的还是我应该检查我的PL/SQL解决方案?
(oracle 10g)
我刚刚在工作中选择了一个应用Log4J来记录其活动的现有Web应用程序.我完全按照我的要求配置了我的工作区,其他所有内容(数据库连接,身份验证等等)工作正常,只是没有任何内容写入日志文件.其他类似的应用程序没有问题日志.
我在应用程序启动时查看了WebSphere控制台,并且没有任何错误可能表明Log4J没有记录的原因.
我向另一个开发人员(他曾经在这个应用程序上工作,但暂时没有比我更早过时)提到这一点,他们说这是非常奇怪的行为,但不知道为什么它可能无法登录并且不报告任何错误.
我已经查看了配置文件和属性文件,一切看起来都还可以.我怀疑Log4J甚至从未读过log4j.xml,但我不确定.自从我使用Log4J已经有一段时间了 - 有没有人有一些关于解决这类问题的好方法?
PS:这个应用程序的实例部署到各种测试/ QA/prod服务器,这些实例都记录正常.这是只有在本地工作站记录似乎静默失败.
更新:因此,它似乎与部署应用程序的方式有关.我将类加载器模式更改为"Parent Last",我可以看到Log4J文件至少现在已被读取.我尝试的第一个动作触发了一个无法找到的ClassNotFoundException谚语org.apache.commons.logging.impl.Log4jFactory.
第二次更新:
我注意到一些奇怪的东西......应用程序有两个WAR项目 - 其中一个用于UI,另一个用于某些Web服务.这是该UI的项目是成功登录其操作的日志文件.Web服务项目是失败的ClassNotFoundException.它们都将commons-logging.jar列为JavaEE模块依赖项,并且它们都没有项目特定的日志记录配置(所有配置文件都在Resources项目中).
一个主要的区别是UI项目包括一些其他内部框架(预编译为JAR),这些框架可能已经包含必要的日志记录配置,也许这就是差异所在.
我也尝试使用这个答案(META-INF/services中名为org.apache.commons.logging.LogFactory的文件,其中一行包含:"org.apache.commons.logging.impl.Log4jFactory")来自这个问题:Websphere所有日志都将转到SystemOut.log但它似乎没有帮助.
(关注这个问题:从Java Web服务客户端获取原始XML响应)
我有一个SOAP消息处理程序,它能够获取Web服务响应的原始XML.我需要将这个XML放到webservice客户端中,这样我就可以在响应之前对响应执行一些XSL转换.我无法找到一种从捕获传入消息的SOAP处理程序中获取数据的好方法,并使原始XML可用于生成(来自WSDL)Web服务客户端.如果这是可行的任何想法?
我想出了这样的事情:
public class CustomSOAPHandler implements javax.xml.ws.handler.soap.SOAPHandler<javax.xml.ws.handler.soap.SOAPMessageContext>
{
private String myXML;
public String getMyXML()
{
return myXML;
}
...
public boolean handleMessage(SOAPMessageContext context)
{
...
myXML = this.getRawXML(context.getMessage());
}
//elsewhere in the application:
...
myService.doSomething(someRequest);
for (Handler h: ((BindingProvider)myService).getBinding().getHandlerChain())
{
if (h instanceof CustomSOAPHandler )
{
System.out.println("HandlerResult: "+ ((CustomSOAPHandler )h).getMyXML());
}
}
Run Code Online (Sandbox Code Playgroud)
在非常简单的测试中,这似乎有效.但这个解决方案感觉有点像廉价黑客.我不喜欢将原始XML设置为链处理程序的成员,我有一种直觉,这违反了许多其他最佳实践.有没有人有更优雅的方式这样做?
我有一个自定义SOAP消息处理程序,用于传入消息,根据正在调用的操作运行不同的代码.我第一次尝试获取操作名称看起来像这样:
public boolean handleMessage(SOAPMessageContext context)
{
String op = context.get(MessageContext.WSDL_OPERATION);
...
Run Code Online (Sandbox Code Playgroud)
此操作失败,因为该属性MessageContext.WSDL_OPERATION似乎永远不会被设置.然后我尝试使用这个:
public boolean handleMessage(SOAPMessageContext context)
{
Map<?, ?> headers = (Map<?, ?>)context.get(MessageContext.HTTP_REQUEST_HEADERS);
ArrayList<String> SOAPAction = ((ArrayList<String>) headers.get("SOAPAction"));
String opName = SOAPAction.get(0);
//opName will be formatted like "urn#myOperation", so the prefix must be removed
opName = ((opName.replace("\"","").split("#"))[1]);
Run Code Online (Sandbox Code Playgroud)
这有效,但我担心可能会出现标题属性"SOAPAction"未设置(或甚至不存在)的情况,或者没有我期望的值.我也有点担心,因为我不知道这是否是获取操作名称的"官方"方式 - 我通过查看context调试器中的内容来弄清楚它.
在处理传入的SOAP消息时,有没有更好的方法来获取操作名称?
我使用iTextPdf从html页面生成pdf文件,如:
iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document);
TextReader reader = new StringReader(HTML);
hw.Parse(reader);
document.Close();
Run Code Online (Sandbox Code Playgroud)
但我的html页面很大,我需要在特定的地方添加页面制动器.
如何在pdf中添加这些分页符?
谢谢