我想直接从Javascript调用SOAP WebService.我一直在寻找,但仍然无法有所作为.我假设我必须构建SOAP enveloppe(见下文).我也使用jQuery.
首先,我确信我可以调用位于其他地方的SOAP Web服务吗?这就是没有像跨域限制这样的限制.
另外我不确定我需要使用什么是正确的URL,使用Ladon公开SOAP服务,出于调试目的我已经检查过WS与soapUI一起工作,这里是我能找到的URL:
http://192.168.1.5/ws/MyWS/soap/description
//从我的理解,它不能是这个http://192.168.1.5/ws/MyWS/soap
http://192.168.1.5/ws/MyWS/soap/myOperation
我认为我应该使用端点或SOAPAction但它不起作用.我可能会错过这里或后来的Javascript是如此错误,以至于我无法确定.
现在我的实际JS正在进行调用(注释中有一些问题):
<html>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<head>
<script type="text/javascript" src="ressources/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
// inspired by http://openlandscape.net/2009/09/25/call-soap-xm-web-services-with-jquery-ajax/
var soapServiceURL = 'http://192.168.1.5/ws/MyWS/soap/myOperation; // not sure what to put here from a LADON point of view
function callSOAPWS(myParameter)
{
var soapMessage =
'<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:LDetector"> \
<soapenv:Header/> \
<soapenv:Body> \
<urn:myOperation soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> \
<myParameter xsi:type="xsd:string">' + myParameter + '</myParameter > \
</urn:myOperation > …
Run Code Online (Sandbox Code Playgroud) 在阅读和使用本文时,它假定我们有一个完整的对象定义,其中包含从python到java的类和映射(代理)对象.
是否有可能只从python中的一段代码中导入一个方法(未在类中定义,但使用内部python类),而不将其包装在类定义中(不使用上述工厂范例).
我想from myPyFile import myMethod
从java 做一些,然后直接从java使用myMethod(也许作为静态方法?)?但是,如果这是可能的,我没有找到任何关于如何做的线索(文章中描述的界面东西可能仍然需要告诉Java如何使用myMethod?)
最好的祝福.
编辑:我现在正在处理Jython 2.5.2,所以它可能依赖于版本,将来会更容易?
编辑:下面回复丹尼尔:
这是一个示例代码,用于重现我得到的错误,并从您有用的回复中获得一个有效的示例!
(好吧,在从yield -ed Python/Jython结果返回Java对象的映射中添加一些其他问题)
(@Joonas,对不起,我修改了我的代码,现在我无法退回到以前的错误)
import org.python.core.Py;
import org.python.core.PyList;
import org.python.core.PyTuple;
import org.python.core.PyObject;
import org.python.core.PyString;
import org.python.core.PySystemState;
import org.python.util.PythonInterpreter;
interface MyInterface {
public PyList getSomething(String content, String glue, boolean bool);
}
class MyFactory {
@SuppressWarnings("static-access")
public MyFactory() {
String cmd = "from mymodule import MyClass";
PythonInterpreter interpreter = new PythonInterpreter(null, new PySystemState());
PySystemState sys = Py.getSystemState();
sys.path.append(new PyString("C:/jython2.5.2/Lib"));
interpreter.exec(cmd);
jyObjClass …
Run Code Online (Sandbox Code Playgroud) 我需要完全改变数据表的内容,从javascript的角度来看.没有任何Ajax调用,因为我已阅读很多次.实际上使下面的脚本工作并切换表的内容将起到作用.
我以为我可以使用:
oTable.fnClearTable();
oTable.fnAddData(R);
oTable.fnAdjustColumnSizing();
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我得到:
DataTables warning (table id = 'example'): Cannot reinitialise DataTable.
To retrieve the DataTables object for this table, pass no arguments or see the docs for bRetrieve and bDestroy
Run Code Online (Sandbox Code Playgroud)
这是一个示例脚本:
<html>
<head>
<!--
<script type="text/javascript" src="ressources/json2.js"></script>
<script type="text/javascript" src="ressources/jsonwspclient.js"></script>
-->
<script type="text/javascript" src="ressources/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
jQuery.noConflict(); // absolutely needed for others json libaries... so i use jQuery instead of $
</script>
<script type="text/javascript" language="javascript" src="ressources/jquery.dataTables.js"></script>
<script type="text/javascript">
function s1()
{
var R = [ …
Run Code Online (Sandbox Code Playgroud) 我想建立自己的 - 这里不确定哪一个 - 标记器(来自Lucene的观点)或我自己的分析器.我已经编写了一个代码,用于将文档标记为单词(作为List <String>或List < Word >,其中Word是一个只有一种带有3个公共字符串的容器的类:word,pos,lemma - pos stand for part语音标签).
我不确定我要索引什么,也许只有" Word.lemma "或类似" Word.lemma +'#'+ Word.pos "之类的东西,可能我会根据部分从停用词列表中做一些过滤-of-讲话.
顺便说一句,这是我的误解:我不确定我应该在哪里插入Lucene API,
我应该将自己的标记器包装在新的标记器中吗?我应该重写TokenStream吗?我应该考虑这是分析仪的工作而不是标记器吗?或者我绕过一切并通过直接在索引中添加我的单词,使用IndexWriter,Fieldable等直接构建我的索引?(如果是这样,你知道有关如何在绕过分析过程时从头开始创建自己的索引的任何文档)
最好的祝福
编辑:可能是最简单的方法应该是org.apache.commons.lang.StringUtils.join我的Word -s在我的个人标记器/分析器的出口处有一个空格并依赖于WhiteSpaceTokenizer来提供Lucene(以及其他经典过滤器) )?
编辑:所以,我读过Larsmans指出的EnglishLemmaTokenizer ......但是我仍然感到困惑的是,我用一个完整的*List <Word>*(Word类包装.form /.)结束我自己的分析/标记化过程. pos/.lemma),这个过程依赖于我用Java包装的外部二进制文件(这是必须做的/不能做的 - 它不是在消费者的观点,我得到完整的列表作为结果)我仍然没有看到我应该如何重新包装它以回到正常的Lucene分析过程.
我也将使用TF.IDF的TermVector功能,如评分(可能正在重新定义我自己的),我也可能对搜索的内容感兴趣,因此,在将它们提供给Lucene之前,从他们的词性中丢弃一些单词内置标记器或内部分析器可能看起来不错.而且我很难想出一种将Word.form/Word.pos/Word.lemma(甚至其他Word.anyOtherUnterestingAttribute)包装成Lucene方式的"正确"方法.
编辑: BTW,这是我写的一段代码,受到@Larsmans的启发:
class MyLuceneTokenizer extends TokenStream {
private PositionIncrementAttribute posIncrement;
private CharTermAttribute termAttribute;
private List<TaggedWord> tagged;
private int position;
public MyLuceneTokenizer(Reader input, String language, String pathToExternalBinary) {
super();
posIncrement = …
Run Code Online (Sandbox Code Playgroud) 我正在处理unicode数据字符,我想知道为什么有些人在unicodedata中没有任何名字?这是一个示例代码,您可以在其中查看< unknown >
我认为unicode数据库中的每个字符都被命名,BTW有所有相同的类别[Cc] Other, Control
.
另一个问题:如何获得unicode代码点值?这是ord(unicodechar)
诀窍吗?
我也把文件放在这里(编码是一个奇怪的事情),因为我认为我的'n'粘贴'隐形'字符可能是有损的.
#!/bin/env python
# -*- coding: utf-8 -*-
#extracted and licensing from here:
"""
:author: Laurent Pointal <laurent.pointal@limsi.fr> <laurent.pointal@laposte.net>
:organization: CNRS - LIMSI
:copyright: CNRS - 2004-2009
:license: GNU-GPL Version 3 or greater
:version: $Id$
"""
# Chars alonemarks:
# !?¿;,*¤@°:%|¦/()[]{}<>«»´`¨&~=#±£¥$©®"
# must have spaces around them to make them tokens.
# Notes: they may be in pchar or fchar too, to identify punctuation after
# …
Run Code Online (Sandbox Code Playgroud) 我对使用Eclipse和Maven完全不熟悉,我正在尝试使用java库的教程,但在先决条件上失败:http://code.google.com/p/dkpro-core-asl/wiki/DeveloperSetup
在最后一次单击"完成"页面结束后,如果我查看我的Eclipse窗口,我认为出现了问题,因为我在Eclipse Package Explorer中有很多错误和一些小错误(我也没有得到不同的东西)红色感叹号之间的点,红色的小白色十字(认为这是一个错误标记)或必须是"警告符号"(黄色感叹号三角形).
所以我有很多不同类型的错误,并且不知道如何解决它们,我复制下面的完整日志.
我的错误形式如下:
Missing artifact de.tudarmstadt.ukp.dkpro.teaching:de.tudarmstadt.ukp.dkpro.teaching.frequency:jar:0.4.0:compile pom.xml /de.tudarmstadt.ukp.dkpro.core.api.frequency-asl line 1 Maven Problem
Project build error: Unresolveable build extension: Plugin *:3 or one of its dependencies could not be resolved: Failure to find de.tudarmstadt.ukp.dkpro.core:build-tools:jar:3 in http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced pom.xml /de.tudarmstadt.ukp.dkpro.core.toolbox-asl line 1 Maven Problem
The container 'Maven Dependencies' references non existing library 'C:\Users\stephane\.m2\repository\de\tudarmstadt\ukp\dkpro\teaching\de.tudarmstadt.ukp.dkpro.teaching.frequency\0.4.0\de.tudarmstadt.ukp.dkpro.teaching.frequency-0.4.0.jar' de.tudarmstadt.ukp.dkpro.core.api.frequency-asl …
Run Code Online (Sandbox Code Playgroud) 我在很长一段时间内都遇到了这个错误:
TypeError: expected a character buffer object
Run Code Online (Sandbox Code Playgroud)
我只是明白我误解了什么,这是unicode字符串和'简单'字符串之间的区别,我试图使用上面的代码与"普通"字符串,而我必须传递一个unicode.所以在字符串打破执行之前伪造简单的"u":/ !!!
BTW TypeError对我来说非常不清楚,现在仍然如此.
拜托,有人可以解释一下我错过了什么,为什么"简单"的字符串不是"字符缓冲对象"?
你可以用下面的代码重现(摘自及(c)在这里:)
def maketransU(s1, s2, todel=u""):
"""Build translation table for use with unicode.translate().
:param s1: string of characters to replace.
:type s1: unicode
:param s2: string of replacement characters (same order as in s1).
:type s2: unicode
:param todel: string of characters to remove.
:type todel: unicode
:return: translation table with character code -> character code.
:rtype: dict
"""
# We go unicode internally - ensure callers …
Run Code Online (Sandbox Code Playgroud) 我正在寻找正确的语法和直接从SQL执行以下操作的方法:插入或更新(如果数据已经存在于内部)TableMain
来自包含的数据TableA
,两者都具有相同的复合主键.
两个表都定义为:
CREATE TABLE TableA (
[TID0] [int] NOT NULL,
[TID1] [int] NOT NULL,
[language] [nvarchar](2) NOT NULL,
[TID2] [nvarchar](200) NOT NULL,
[text] [nvarchar](max) NULL,
[updatedOn] [datetime] NOT NULL DEFAULT (getdate())
PRIMARY KEY (
[TID0],
[TID1],
[language],
[TID2],
)
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
TableA
将定期删除并填写.
TableMain
因为相同的定义,但将包含数据的更多的行和我需要的是插入从未见过从价值观TableA
到TableMain
,并更新现有的行.
我曾经做过这种插入,但我不知道如何处理更新和复合主键:
INSERT INTO TableMain
SELECT * FROM TableA
Run Code Online (Sandbox Code Playgroud)
编辑:我正在使用SQL Server 9.00.5000
编辑:另一种灵感来自MERGE并模仿它的方式
DECLARE @updatedIDs TABLE(
[TID0] [int],
[TID1] [int],
[language] [nvarchar](2),
[TID2] …
Run Code Online (Sandbox Code Playgroud) 编码问题的简单测试程序:
#!/bin/env python
# -*- coding: utf-8 -*-
print u"Råbjerg" # >>> unicodedata.name(u"å") = 'LATIN SMALL LETTER A WITH RING ABOVE'
Run Code Online (Sandbox Code Playgroud)
这是我从debian命令框中使用它时得到的,我不明白为什么在这里使用重定向打破了这个东西,因为我可以在没有使用时正确看到它.
有人可以帮助理解我错过了什么吗?什么应该以正确的方式打印这些角色,以便它们到处都可以?
$ python testu.py
Råbjerg
$ python testu.py > A
Traceback (most recent call last):
File "testu.py", line 3, in <module>
print u"Råbjerg"
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe5' in position 1: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
使用debian Debian GNU/Linux 6.0.7(squeeze)配置:
$ locale
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL= …
Run Code Online (Sandbox Code Playgroud) 是否有可能在bash脚本中做一些事情,比如将网页内容作为浏览器使用lynx将其存储在一个变量中(实际上只有一个网络访问页面),然后做很多grep来提取信息?
我尝试过这样的事情:
content="$(lynx -dump -nolist $url')"
var1=`cat "$content" | grep myre1`
var2=`cat "$content" | grep myre2`
Run Code Online (Sandbox Code Playgroud)
但我在任务,使用引号,反引号等之间陷入混乱.
如果有人有另一个没有lynx的解决方案:我正在寻找类似lynx --dump
"浏览器渲染视图"(而不是wget
)的东西,最好避免在系统上创建文件(或者如果这是唯一的解决方案,我该如何继续删除这个临时文件?)
谢谢你和最诚挚的问候
如何获取包含一段文本的节点的父节点?
此外,我可以使用一些正则表达式机制作为搜索/过滤的匹配元素re.compile("th[ei]s? .ne")
,例如下面的搜索吗?
说 this one
html = '''<html>
<head><title></title></head>
<body>
<table>
<tr><td>1a</td><td>2a</td><td>3a</td><td>4a</td><td>5a</td><td>6a</td></tr>
<tr><td>1b</td><td>2b</td><td>3b</td><td>4b</td><td>5b</td><td>6b</td></tr>
<tr><td>1c</td><td>2c</td><td>3c</td><td>4c</td><td>5c</td><td>6c this one</td></tr>
</table>
<div><div>
<table>
<tr><td>1A</td><td>2A</td><td>3A</td><td>4A</td><td>5A</td><td>6A</td></tr>
<tr><td>1B</td><td>2B</td><td>3B</td><td>4B</td><td>5B</td><td>6B</td></tr>
<tr><td>1C</td><td>2C</td><td>3C</td><td>4C</td><td>5C</td><td>6C</td></tr>
</table>this one
</div></div>
</body>
</html>'''
Run Code Online (Sandbox Code Playgroud)
我想要一个返回的迭代器:
<td>6c this one</td>
Run Code Online (Sandbox Code Playgroud)
进而:
<div>
<table>
<tr><td>1A</td><td>2A</td><td>3A</td><td>4A</td><td>5A</td><td>6A</td></tr>
<tr><td>1B</td><td>2B</td><td>3B</td><td>4B</td><td>5B</td><td>6B</td></tr>
<tr><td>1C</td><td>2C</td><td>3C</td><td>4C</td><td>5C</td><td>6C</td></tr>
</table>this one
</div>
Run Code Online (Sandbox Code Playgroud)
我试过:
import lxml.html
root = lxml.html.document_fromstring(html)
root.xpath("//text()[contains(., one)]")
Run Code Online (Sandbox Code Playgroud)
和
import xml.etree.ElementTree as ET
for e in ET.fromstring(html).getiterator():
if e.text and e.text.find('one') != -1:
print "Found string %r, element = %r" % (e.text, e)
Run Code Online (Sandbox Code Playgroud)
但我能拥有的最好的是包含this one
自身的节点......而我正在寻找包含此文本的父节点。请注意,div …
我在编写 python 模块和类时经常有疑问,特别是:
我应该在哪里/如何放置控制日志记录的主标志以及在哪里/如何创建记录器,
它应该在模块级别吗?---因此需要global MyLogger
在每个方法中几乎无处不在。
它应该是传递给方法和/或类的参数吗?也许决定一个方法或类是否需要它,也许我可以使用**args
星星魔法,像myMethod(..., logger=Mylogger)
?
我应该在哪里定义/设置I_logged_something
标志?(...或者我应该依靠if MyLogger: MyLogger.log('something')
)
当类或模块被导入时呢?
什么是 Pythonic 的日志记录方式?您如何使用日志记录工具?