SuperMap iServer 擴充服務及擴充服務提供者範例,supermapiserver

來源:互聯網
上載者:User

SuperMap iServer 擴充服務及擴充服務提供者範例,supermapiserver

一、擴充服務執行個體

1.將iserver-extend1下的listener.java打成jar包
2.複製到D:\SuperMap-iServer\webapps\iserver\WEB-INF\lib
3.在web.xml檔案中添加listener配置如下:
<listener>
<listener-class>extend.listener</listener-class>
</listener>

範例程式碼:

package extend;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.supermap.data.Workspace;
import com.supermap.data.WorkspaceConnectionInfo;
import com.supermap.data.WorkspaceType;

public class listener implements ServletContextListener {
private Workspace m_workspace;

// 定義的銷毀函數
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
System.out.println("this is last destroyeed");
}

// 定義的初始化函數,當tomcat啟動時觸發定義的儲存oracle工作空間的方法
public void contextInitialized(ServletContextEvent sce) {
// TODO Auto-generated method stub
/*
* 當Servlet 容器啟動或終止Web 應用程式時,會觸發ServletContextEvent 事件, 擷取tomcat的
* ServletContext 對象的生命週期,
*/
ServletContext sct = sce.getServletContext();
try {
m_workspace = new Workspace();
// 初始化工作空間串連資訊類
WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo();
// 定義開啟的工作空間類型為oracle
connectionInfo.setType(WorkspaceType.ORACLE);
// 定義的串連oracle資料庫資訊
connectionInfo.setServer("ORCL");
connectionInfo.setName("x'x");
connectionInfo.setUser("x'x");
connectionInfo.setPassword("x'x");
boolean openResult = m_workspace.open(connectionInfo);
if (openResult) {
System.out.print("開啟工作空間成功!");
// 儲存工作空間
boolean saveResult =m_workspace.save();
if(saveResult){
System.out.print("儲存工作空間成功!");
}
} else {
System.out.print("開啟工作空間失敗!");
}
// 釋放資源
connectionInfo.dispose();
m_workspace.dispose();

} catch (Exception e) {
e.printStackTrace();
}
}

}

 

二、擴充服務提供者執行個體

package com.supermap.serviceprovider;

import com.supermap.data.Workspace;
import com.supermap.data.WorkspaceConnectionInfo;
import com.supermap.data.WorkspaceType;
import com.supermap.services.components.spi.ProviderContext;
import com.supermap.services.components.spi.ProviderContextAware;

//ProviderContextAware 用於擷取服務提供者上下文,通過服務提供者上下文,可以擷取該服務提供者對應的配置資訊
public class SaveWorkspaceProvider implements ProviderContextAware, SaveWorkspace {

private Workspace m_workspace;
// setProviderContext設定在iserver啟動過程中執行,
public void setProviderContext(ProviderContext context) {
ClearSetting clearSetting = (ClearSetting) context.getConfig(ClearSetting.class);
if (clearSetting == null) {
System.out.print("無法清除資料集配置類!");
return;
}
// 定義的擷取到的工作空間路徑
String workspacePath = (clearSetting).getWorkSpacePath();
try {
m_workspace = new Workspace();
// 初始化工作空間串連資訊類
WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo();
connectionInfo.setType(WorkspaceType.SXWU);
connectionInfo.setServer(workspacePath);
boolean openResult = m_workspace.open(connectionInfo);
if (openResult) {
System.out.print("開啟工作空間成功!");
// 儲存工作空間
boolean saveResult = m_workspace.save();
if (saveResult) {
System.out.print("儲存工作空間成功!");
}
} else {
System.out.print("開啟工作空間失敗!");
}
// 釋放資源
connectionInfo.dispose();
m_workspace.dispose();
} catch (Exception e) {
e.printStackTrace();
}

}
}

 

package com.supermap.serviceprovider;

public class ClearSetting {

//workspacePath 欄位拼錯了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
private String workspacePath; //檔案工作空間路徑

public void setWorkspacePath(String workspacePath) {
this.workspacePath = workspacePath;
}

public String getWorkSpacePath() {
// TODO Auto-generated method stub
return workspacePath;
}
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.