一个简单的BizTalk+WebService+Mapping+Soap Adapter 的Demo
这个例子很简单,就是演示下webservice在Biztak下的应用,把一个包含雇员的信息的报文通过Biztalk写入文件里。
1. 新建一个WebService项目,就叫WebSite1好了.右键项目添加一个类Employee_Entity
2. Employee_Entity这个类是个实体类,代码如下:
public class Employee_Entity
{
public Employee_Entity()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
string employee_id;
public string Employee_id
{
get { return employee_id; }
set { employee_id = value; }
}
string employee_name;
public string Employee_name
{
get { return employee_name; }
set { employee_name = value; }
}
double employee_salary;
public double Employee_salary
{
get { return employee_salary; }
set { employee_salary = value; }
}
}
3. 把HelloWorld的代码改为如下:
[WebMethod]
public void Emplyee_Info(Employee_Entity employee)
{
string emp_id = employee.Employee_id;
string emp_name = employee.Employee_name;
double emp_sal = employee.Employee_salary;
StoreEmpInfo(emp_id, emp_name, emp_sal);
}
public void StoreEmpInfo(string emp_id, string emp_name, double emp_sal)
{
System.IO.FileStream fs = new System.IO.FileStream(@"d:/123.txt", System.IO.FileMode.Append, System.IO.FileAccess.Write);
string str = string.Format("EmployeeID:{0};EmployeeName:{1};Salary:{2} /n", emp_id, emp_name, emp_sal.ToString());
fs.Write(System.Text.Encoding.GetEncoding("GB2312").GetBytes(str), 0, System.Text.Encoding.GetEncoding("UTF-8").GetByteCount(str));
fs.Close();
fs.Dispose();
}
上面这个方法很简单,就是写文件.
这个时候就是一个可以正常运行的WebServices.
4. 新建一个空BizTalk项目,添加上面的WebService的引用,别名叫EmpService
5. 添加一个新的Schema文件EmployeeInfo.xsd,节点如下:
6. 新建一个Mapping文件Emp_Info.btm,源文件选择刚才建立的EmployeeInfo.xsd,目标文件选择EmpService.Refernce,这个Refernce就是从WebService里的实体类中自动生成的。节点映射如下:
7. 新建一个流程图BizTalk.EmpInfo.Orch.odx,如下
构建上面的流程图包括3个Message:Message_In,Message_Out,Message_Responses
Message_In的消息类型是你自己建立的BizTalk_WebService.EmployeeInfo
Message_Out消息类型从下拉框中选择类别Web Message Type里的BizTalk_WebService.EmpService.Service_.Emplyee_Info_request
Message_Responses消息类型从下拉框中选择类别Web Message Type里的BizTalk_WebService.EmpService.Service_.Emplyee_Info_response
其他属性:
Receive_Emp:Message= Message_In,
ConstructMessage_1:Message Constructed=Message_Out
Transform_Emp:Mapping为Emp_Info.btm
Send_Emp:Message=Message_Out
Receive_response:Message= Message_Responses
端口EmpSoap的建立:
在端口建立向导里新建立一个端口名称为EmpSoap,下一步端口类型选择已存在的端口类型,如下:
选择Web Port Type,然后下一步下一步完成。
8. 这样,这个应用就可以部署测试了。
9. 接受端口接受EmployeeInfo.xsd格式报文,发送端口使用SoapAdapter,配置里的Web Service URL为部署的webservice地址。
10. Ok,部署成功,就可以在文件里看见写入的雇员信息了。