jaxws,rest經常使用知識筆記

全局設置

static String ENDPOINT_ADDRESS_PROPERTY  java

          標準屬性:目標服務端點地址。 
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,但貌似只能一個個弄. apache

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 oracle

相關文章
相關標籤/搜索