全局设置
static String ENDPOINT_ADDRESS_PROPERTY
标准属性:目标服务端点地址。
static String PASSWORD_PROPERTY
标准属性:用于验证的密码。
static String SESSION_MAINTAIN_PROPERTY
标准属性:服务客户端使用此 boolean 属性指示它是否希望参与与服务端点的会话。
static String SOAPACTION_URI_PROPERTY
SOAPAction 的标准属性。
static String SOAPACTION_USE_PROPERTY
SOAPAction 的标准属性。
static String USERNAME_PROPERTY
标准属性:用于验证的用户名。
BindingProvider bindingProvider = (BindingProvider) servicePort;
Map<String, Object> requestContext = bindingProvider.getRequestContext();
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointAddress);
requestContext.put("thread.local.request.context", true);
requestContext.put("com.sun.xml.internal.ws.connect.timeout", 100000);
requestContext.put("com.sun.xml.internal.ws.request.timeout", 300000);
requestContext.put("set-jaxb-validation-event-handler", false);
requestContext.put("schema-validation-enabled", false);
thread.local.request.context: 是否是线程安全的.Boolean.true就是线程安全.
Apache CXF org.apache.cxf.jaxws.JaxWsClientProxy
public static final String THREAD_LOCAL_REQUEST_CONTEXT="thread.local.request.context"
com.sun.xml.internal.ws.connect.timeout:连接超时时间
com.sun.xml.internal.ws.request.timeout:请求超时时间
set-jaxb-validation-event-handler:jaxb是否进行验证.true为开启验证.
schema-validation-enabled:schema验证是否开启,boolean.True开启验证.
通过CXF 转换WSDL为Java文件,指定UTF-8
ApacheCXF wsdl2java 指定编码:
wsdl2java -encoding utf-8
wsdl网址
XSD to java 指定语句
- 1.cmd命令进入到jdk1.7的bin下.
- 2.在此目录下新建src文件夹
- 3. 完整命令: D:\software\java7\jdk1.7\bin>xjc.exe E:\Test\xsd -d src -p org.credo.payment
第二种用jaxb,但貌似只能一个个弄.
1.首先我们需要去下一份JAXB的实现,可以去SUN(现在的oracle)网站上去下载:http://jaxb.java.net/。
2.用docs命令进入jaxb的bin目录。
3.在bin目录中新建一个src目录
4.把相应的*.xsd放入bin目录中
4.执行如下命令 xjc.bat E:\Test\xsd -d src -p org.credo.payment
JAXB导出Schema
/**
* JAXB 导出Schema。
*
* @author: Credo
* @date: 2013-6-25
*/
public class JAXBExportSchema {
public static void main(String[] args) {
JAXBContext jct;
try
{
jct = JAXBContext.newInstance(类名.class);
jct.generateSchema(new Resolver("D:", "文件名"));
}
catch ( Exception ex )
{
ex.printStackTrace();
}
// JaxbContext jct =
// JettisonMappedContext.newInstance(类名.class).generateSchema(new
// Resolver());
}
}
class Resolver extends SchemaOutputResolver {
private final File file;
public Resolver(String namespaceUri, String suggestedFileName) {
file = new File(namespaceUri, suggestedFileName);
}
@Override
public Result createOutput(String namespaceUri, String suggestedFileName) throws IOException {
System.out.println("file:" + file);
StreamResult result = new StreamResult(file);
result.setSystemId(file.toURI().toURL().toString());
return result;
}
}
XMLSPY生成schema
1,用XMLSPY2010打开你的XML文件
2,在DTD/Schema中选Generate DTD/Schema
3,在DTD/Schema file format中选W3C Schema
4,输入schema名字,会生成一个差不多的schema