jaxws,rest常用知识笔记

全局设置

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




你可能感兴趣的:(jaxws,rest常用知识笔记)