我有一个Web服务,它接受JSON参数并具有方法的特定URL,例如:
http://IP:PORT/API/getAllData?p={JSON}
Run Code Online (Sandbox Code Playgroud)
这绝对不是REST,因为它不是无状态的.它需要考虑cookie并拥有自己的会话.
是RPC吗?RPC和REST有什么区别?
我正在使用Web服务开发一个程序,为此我需要将一些数据包装为消息的标题.
我想问一下,将这些数据作为SOAP标头或HTTP标头放置是否相同?
我的消息传递提供程序为我提供了两种不同的WSDL.
http://my.amazonaws.com:8000/webservice/?wsdl
http://my.amazonaws.com:8000/webservice/?singleWsdl
Run Code Online (Sandbox Code Playgroud)
第一个是嵌入式 WSDL.不能使用它来生成WSDL2java包,也不能使用JAX-WS来创建连接.
第二个是单个 WSDL.它可以使用CXF 3.0的WSDL2java生成Java包,并可以使用JAX-WS创建连接.它工作得很好.
请告诉我这两种WSDL之间的区别.
我的log4j.xml:
<appender name="B2BAPP" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="/LOGS/SAM/B2B_VJ.log"/>
<param name="Threshold" value="ERROR"/>
<param name="MaxFileSize" value="10000KB"/>
<param name="MaxBackupIndex" value="10"/>
<param name="Append" value="false"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss,SSS} %5p [%c:%L] %m%n"/>
</layout>
</appender>
<logger name="com.sas">
<priority value="DEBUG"/>
<appender-ref ref="B2BAPP"/>
</logger>
Run Code Online (Sandbox Code Playgroud)
我想了解priority value ="DEBUG"和param name ="Threshold"value ="DEBUG"的行为.
在我的logger(com.sas)中,我设置了优先级值"DEBUG",该记录器的appender为"B2BAPP",在"B2BAPP"中,我将"Threshold"定义为"ERROR".
那么"com.sas"的日志级别将设置为"DEBUG"或"ERROR"?
案例:
priority value ="DEBUG"和param name ="Threshold"value ="ERROR"
priority value ="ERROR"和param name ="Threshold"value ="DEBUG"
上述案件的结果会是什么?它是如何工作的?
这个问题可能很愚蠢,但我真的很困惑.
我想实现一个软件即服务(SaaS),我认为我可以使用Visual Studio和WCF来实现它.但我读过WCF和Web服务是SOA实现而不是SaaS.
我可以使用WCF实施SaaS吗?SaaS,SOA和Web服务之间的关系是什么?
我需要使用打印机的SOAP服务.有一个Windows工具来访问这个服务,我用它来生成SOAP请求和我需要的重要功能的响应.
现在我应该使用Python编写一个Linux客户端,我发现最简单的方法是使用suds带有WSDL文件的库.但我没有这个WSDL!
当我调查windows工具(查看可执行文件的hexdump)时,我得出结论可能根本没有WSDL文件.
现在我的问题是,有没有人体验过"逆向工程"SOAP服务,并且知道哪些工具可以用于为现有服务创建WSDL文件?(谷歌还没有提出任何有用的东西).
最近我使用的是Mybatis3,发现当你的SQL语句从数据库中获取一个空的结果集时,Mybatis会创建一个新的List并将它返回给你的程序.
给出一些代码,例如:
List<User> resultList = (List<User>)sqlSession.select("statementId");
<select id="statementId" resultType="User">
select * from user where id > 100
</select>
Run Code Online (Sandbox Code Playgroud)
假设上面的SQL没有返回任何行(即没有大于100的id).
变量resultList将是空的List,但我希望它是null相反的.我怎样才能做到这一点?
如何Date在JSP中格式化和显示对象,最好使用JSTL和EL,但是欢迎任何其他解决方案?我无法更改bean对象.
我有以下课程:
import java.util.Date;
public class Person {
private Date myDate;
public Date getMyDate() {
return myDate;
}
public void setMyDate(Date myDate){
this.myDate = myDate;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图在JSP页面中显示此对象中的日期.当我这样做时,<c:out value="${person.myDate} />它会在页面中打印出来.2013-06-08 00:00:00.0
我想要做的是删除日期的时间部分并将其格式化为MM-dd-yyyy.
我试过这个:
<c:set var="myDate" value="${person.myDate }"/>
<fmt:formatDate value="${myDate}" type="date" var="formattedDate"/>
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误
无法将字符串'$ {myDate}'转换为类java.util.Date以获取属性值:java.lang.IllegalArgumentException:Property Editor未向PropertyEditorManager注册
然后我尝试了以下内容:
<c:set var="myDate" value="${person.myDate }"/>
<fmt:parseDate value="${myDate }" var="parsedDate" pattern="MM-dd-yyyy"/>
<c:out value="${parsedDate }"/>
Run Code Online (Sandbox Code Playgroud)
我得到了:
无法解析的日期:"$ {myDate}"
我有一个用MyBatis映射文件写的sql,它是这样的:
<select id="somesql">
select a,b,c from tbl_name where d = ?
</select>
Run Code Online (Sandbox Code Playgroud)
占位符值d应该是在名为的文件中声明的常量Constants.java:
public static final String d = "d_value";
Run Code Online (Sandbox Code Playgroud)
如何在不实际传递<select>构造中的参数的情况下用值替换占位符
?我试过#{com.pkg.name.Constants.d}但它没用.
没有硬编码!!!
我一直在寻找,我没有这么清楚.使用MyBatis映射器时,是否需要设置jdbcType?我正在使用MySql.
对于我所读到的内容,它适用于传递空值的情况,但我不知道这是否仍然是必要的还是旧的.例如,这两个查询都有效:
SELECT <include refid="columns"/> FROM user WHERE uid=#{uid, jdbcType=INTEGER}
SELECT <include refid="columns"/> FROM user WHERE uid=#{uid}
Run Code Online (Sandbox Code Playgroud)