我使用Pikaday作为日期选择器,因为JQuery Datepicker与Prototype Library发生冲突.
这里有几个问题.
这是示例代码
<input type="text" id="datepicker">
<script src="pikaday.js"></script>
<script>
var picker = new Pikaday(
{
changeMonth: true,
changeYear: true,
field: document.getElementById('datepicker'),
firstDay: 1,
minDate: new Date('2000-01-01'),
maxDate: new Date('2020-12-31'),
yearRange: [2000,2020]
});
</script>
Run Code Online (Sandbox Code Playgroud) 如何以漂亮的xml格式获得响应.
在编码没有问题并得到所有响应,但是响应是作为单行使用不漂亮的打印格式.
请求Xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://ctsnis.att.com/ticket/v1" xmlns:v3="http://cio.att.com/commonheader/v3">
<soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>Test_User</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">!TestInterface!</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
<wsh:WSHeader xmlns:wsh="http://cio.att.com/commonheader/v3">
<wsh:WSContext>
<wsh:FromAppId>Test_User</wsh:FromAppId>
<wsh:SourceIPAddress>test</wsh:SourceIPAddress>
</wsh:WSContext>
</wsh:WSHeader>
</soapenv:Header>
<soapenv:Body>
<v1:ListNotificationDetailsRequest>
<v3:WSHeader>
<!--Optional:-->
<v3:WSEndUserToken>
<!--Optional:-->
<v3:Token>?</v3:Token>
<!--Optional:-->
<v3:TokenType>?</v3:TokenType>
<!--Zero or more repetitions:-->
<v3:WSNameValue>
<v3:Name>?</v3:Name>
<v3:Value>?</v3:Value>
</v3:WSNameValue>
</v3:WSEndUserToken>
<!--Optional:-->
<v3:WSContext>
<!--Optional:-->
<v3:FromAppId>?</v3:FromAppId>
<!--Optional:-->
<v3:ToAppId>?</v3:ToAppId>
<!--Optional:-->
<v3:Version>
<v3:major>?</v3:major>
<v3:minor>?</v3:minor>
</v3:Version>
<!--Optional:-->
<v3:SourceIPAddress>?</v3:SourceIPAddress>
<!--Zero or more repetitions:-->
<v3:WSNameValue>
<v3:Name>?</v3:Name>
<v3:Value>?</v3:Value>
</v3:WSNameValue>
</v3:WSContext>
<!--Optional:-->
<v3:WSCallback>
<!--Optional:-->
<v3:URL>?</v3:URL>
<!--Optional:-->
<v3:WSCorrelationId>?</v3:WSCorrelationId>
<!--Optional:-->
<v3:FaultURL>?</v3:FaultURL>
</v3:WSCallback>
<!--Optional:-->
<v3:WSConversationId>?</v3:WSConversationId>
<!--Optional:-->
<v3:WSMessageData>
<!--Optional:-->
<v3:MessageId>?</v3:MessageId>
<!--Optional:--> …Run Code Online (Sandbox Code Playgroud) 我第一次尝试使用 SoapUI 5.3.0。这是我所做的:
然后我看到这个窗口:
我输入我的 Windows 凭据(以访问代理服务器),然后看到以下错误:
Error loading [http://MyComputer/WCFTest/Service1.svc?wsdl]: org.apache.xmlbeans.XmlException:
org.apache.xmlbeans.XmlException: error: Reference to undefined entity: trade
Run Code Online (Sandbox Code Playgroud) 我试图通过生成代理客户端在 Jdev 中使用来自 SoapUI 的模拟服务,但我在 Jdev 中不断收到以下异常:
Exception in thread "main" com.sun.xml.internal.ws.server.UnsupportedMediaException: Unsupported Content-Type: text/html; charset=iso-8859-1 Supported ones are: [text/xml]
at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:284)
at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:118)
at com.sun.xml.internal.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:278)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:180)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:83)
at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:105)
at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:587)
at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:546)
at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:531)
at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:428)
at com.sun.xml.internal.ws.client.Stub.process(Stub.java:211)
at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:124)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:98)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
at $Proxy33.searchOrder(Unknown Source)
at beans.util.search.ShowOrderSearchResults.getOrderSearchResults(ShowOrderSearchResults.java:43)
at beans.util.search.ShowOrderSearchResults.main(ShowOrderSearchResults.java:32)
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我这可能是什么原因,因为我是网络服务的新手。
假设我的WSDL包含以下内容:
<message name="modifRequest">
<part name="siList" element="sn:siListElement"/>
</message>
<message name="modifResponse">
<part name="siList" element="sn:boolElement"/>
</message>
<portType name="siModificationPortType">
<operation name="delete">
<input message="tns:modifRequest" />
<output message="tns:modifResponse" />
</operation>
<operation name="update">
<input message="tns:modifRequest" />
<output message="tns:modifResponse" />
</operation>
</portType>
Run Code Online (Sandbox Code Playgroud)
无论是在更新请求还是删除请求中,它都会在SoapUI中生成以下SOAP客户端消息:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sim="simSchema">
<soapenv:Header/>
<soapenv:Body>
<sim:siListElement>
<!--1 or more repetitions:-->
<sim:si name="?" desc="?" workspace="workspace">
<!--Zero or more repetitions:-->
<sim:bp name="?" value="?" bps="?"/>
</sim:si>
</sim:siListElement>
Run Code Online (Sandbox Code Playgroud)
所以似乎通过HTTP发送给WS的唯一事情是siListElement.但是WS如何知道客户想要达到的操作(这里是删除/更新)?特别是在两种操作的输入具有相同结构的情况下.
我正在尝试使用命令行创建证书密钥库文件,但它给了我一个例外:
c:\Program Files\Java\jre7\bin>keytool.exe -genkey -alias srccodes -keyalg AES -
keystore C:\srccodes.jks -keysize 128
Enter keystore password:
Re-enter new password:
keytool error: java.lang.Exception: Cannot derive signature algorithm
Run Code Online (Sandbox Code Playgroud) 出于某种原因,执行以下脚本时,不仅会在日志中打印输出,还会在信息弹出对话框中打印输出.有人可以向我解释为什么会发生这种情况以及如何防止它发生?
import groovy.io.FileType;
import org.custommonkey.xmlunit.*;
def file1 = "somepath/file1.xml"
def file2 = "somepath/file2.xml"
def xml1 = new FileReader(file1)
def xml2= new FileReader(file2)
XMLUnit.setIgnoreWhitespace(true)
XMLUnit.setIgnoreComments(true)
XMLUnit.setIgnoreDiffBetweenTextAndCDATA(true)
XMLUnit.setNormalizeWhitespace(true)
DetailedDiff myDiff = new DetailedDiff(new Diff(xml1, xml2));
List allDifferences = myDiff.getAllDifferences();
allDifferences.each { difference ->
log.info (difference)
}
Run Code Online (Sandbox Code Playgroud)
编辑:通过实验,我发现以下行:
List allDifferences = myDiff.getAllDifferences();
Run Code Online (Sandbox Code Playgroud)
是对话弹出的原因.我猜测getAllDifferenes()方法导致弹出对话框.
我仍然想要一些帮助来确定一个可行的替代方案,因为我试图比较两个xml文件并打印文件中的差异.
我想执行此命令以获取vertxHome。
在shell中,我可以这样:
vertxHome=$(dirname $(dirname $(readlink -f $(which vertx))))
echo $vertxHome
Run Code Online (Sandbox Code Playgroud)
但是如何做到这一点呢?
我试过了vertxHome = 'dirname $(dirname $(readlink -f $(which vertx)))'.execute(),但是没有用。
任何人都可以帮助我理解签名时间戳时使用的过程和Java API.
我需要使用TSA URL签名文件并对其加盖时间戳" http://timestamp.globalsign.com/scripts/timstamp.dll使用Java API ".
我能够使用java.security API对文件进行签名,但无法为其加时间戳.
我必须将Groovy脚本登录写入文本文件,我能够使用编写任何Soap步骤的请求和响应context.expand.
写我正在使用的测试请求和响应:
def request = context.expand('${SoapRequest#Request}')
new File ("D:/RequestFile.txt").write(request)
Run Code Online (Sandbox Code Playgroud)
我想要的是将日志输出保存在文件中:
建议我在文本文件中编写Groovy脚本日志的方法.
soapui ×6
groovy ×3
java ×2
soap ×2
aes ×1
automation ×1
certificate ×1
datepicker ×1
javascript ×1
keystore ×1
keytool ×1
pikaday ×1
pretty-print ×1
rfc3161 ×1
security ×1
shell ×1
soap-client ×1
testing ×1
timestamping ×1
wcf ×1
web-services ×1
wsdl ×1
xml ×1
xmlunit ×1