📄 statelessmapimagebean.java
字号:
package com.esri.arcgis.samples.ejb;
import javax.ejb.SessionBean;
import javax.ejb.EJBException;
import javax.ejb.SessionContext;
import com.esri.arcgis.samples.ejb.value.Envelope;
import com.esri.arcgis.samples.ejb.LocalTransaction;
import com.esri.arcgis.samples.ejb.XAResource;
import com.esri.arcgis.geometry.IEnvelope;
import com.esri.arcgis.geometry.IPoint;
public class StatelessMapImageBean implements javax.ejb.SessionBean {
private javax.ejb.SessionContext m_context;
private com.intrinsyc.jca.ConnectionFactory m_connectionFactory;
private com.intrinsyc.jca.Connection m_connection;
private com.intrinsyc.jca.JintConnectionRequestInfo m_connectionRequestInfo;
private java.lang.Object m_serverConnectionObject;
private com.esri.arcgis.server.ServerConnection m_serverConnection;
private com.esri.arcgis.server.IServerContext m_serverContext;
private com.esri.arcgis.carto.IMapServer m_mapServer;
private com.esri.arcgis.carto.IMapServerInfo m_mapServerInfo;
private com.esri.arcgis.carto.IMapDescription m_mapDescription;
private com.esri.arcgis.carto.IGraphicElements m_graphicElements;
private com.esri.arcgis.carto.IImageType m_imageType;
private com.esri.arcgis.carto.IImageDisplay m_imageDisplay;
private com.esri.arcgis.carto.IImageDescription m_imageDescription;
private com.esri.arcgis.carto.IMapImage m_mapImage;
private String m_mapDescriptionString;
private String m_imageDescriptionString;
private String m_arcServerHostName;
private String m_arcServerHostDomain;
private String m_arcServerHostUserName;
private String m_arcServerHostPassword;
private String m_mapServerName;
public void ejbActivate(){
}
public void ejbPassivate(){
}
public void ejbRemove(){
try{
m_serverContext.removeAll();
m_serverContext.releaseContext();
}
catch(Exception exception){
System.out.println(exception.getMessage());
}
}
public void ejbCreate(){
}
public void setSessionContext(SessionContext sessionContext){
}
public java.util.Hashtable getMap(String mapServerHost, String mapServerName, String mapName, int width, int height, double dpi, int imageFormat, int imageReturnType) throws Exception{
try{
initMap(mapServerHost, mapServerName, mapName, width, height, dpi, imageFormat, imageReturnType);
java.util.Hashtable hTable = new java.util.Hashtable(3);
m_mapImage = m_mapServer.exportMapImage(m_mapDescription, m_imageDescription);
hTable.put("MAPURL", m_mapImage.getURL());
m_mapDescriptionString = m_serverContext.saveObject(m_mapDescription);
m_imageDescriptionString = m_serverContext.saveObject(m_imageDescription);
hTable.put("MAPDESCRIPTION", m_mapDescriptionString);
hTable.put("IMAGEDESCRIPTION", m_imageDescriptionString);
com.esri.arcgis.geometry.IEnvelope currentExtent = m_mapDescription.getMapArea().getExtent();
com.esri.arcgis.samples.ejb.value.Envelope envelope = new com.esri.arcgis.samples.ejb.value.Envelope();
envelope.setMinX(currentExtent.getXMin());
envelope.setMaxX(currentExtent.getXMax());
envelope.setMinY(currentExtent.getYMin());
envelope.setMaxY(currentExtent.getYMax());
hTable.put("EXTENT", envelope);
hTable.put("MAPUNITS", String.valueOf(m_mapServerInfo.getMapUnits()));
return hTable;
}
catch(Exception exception){
throw new Exception("getMap(String mapServerHost, String mapServerName, String mapName, int width, int height, double dpi, int imageFormat, int imageReturnType) failed: " + exception.getMessage());
}
}
private void connectServer(String mapServerHost, String mapServerName,
String mapDescription, String imageDescription) throws MapServerConnectionException{
try{
m_serverConnection.connect(mapServerHost);
com.esri.arcgis.server.IServerObjectManager serverObjectManager = m_serverConnection.getServerObjectManager();
System.out.println("Before ServerContext");
m_serverContext = serverObjectManager.createServerContext(mapServerName, "MapServer");
System.out.println("After: " + m_serverContext);
if(mapDescription != null && imageDescription != null){
m_mapDescription = new com.esri.arcgis.carto.IMapDescriptionProxy(m_serverContext.loadObject(mapDescription));
m_imageDescription = new com.esri.arcgis.carto.IImageDescriptionProxy(m_serverContext.loadObject(imageDescription));
}
m_mapServer = new com.esri.arcgis.carto.IMapServerProxy(m_serverContext.getServerObject());
}
catch(Exception exception){
throw new MapServerConnectionException(exception.getMessage());
}
}
private void initMap(String mapServerHost, String mapServerName, String mapName, int width, int height, double dpi, int imageFormat, int imageReturnType) throws Exception{
try{
initializeMapBean();
if(this.m_arcServerHostName.length() > 0 && this.m_mapServerName.length() > 0){
connectServer(m_arcServerHostName, m_mapServerName, null, null);
}
else{
connectServer(mapServerHost, mapServerName, null, null);
}
com.esri.arcgis.carto.IMapServerObjects mapServerObjects = new com.esri.arcgis.carto.IMapServerObjectsProxy(m_mapServer);
if(mapName == null){
m_mapServerInfo = new com.esri.arcgis.carto.IMapServerInfoProxy(m_mapServer.getServerInfo(m_mapServer.getDefaultMapName()));
}
else{
m_mapServerInfo = new com.esri.arcgis.carto.IMapServerInfoProxy(m_mapServer.getServerInfo(mapName));
}
m_mapDescription = new com.esri.arcgis.carto.IMapDescriptionProxy(m_mapServerInfo.getDefaultMapDescription());
m_graphicElements = new com.esri.arcgis.carto.IGraphicElementsProxy(m_serverContext.createObject("esricarto.GraphicElements"));
if(m_graphicElements.getCount() > 0){
m_graphicElements.removeAll();
}
m_imageType = new com.esri.arcgis.carto.IImageTypeProxy(m_serverContext.createObject("esricarto.ImageType"));
m_imageType.setFormat(imageFormat);
m_imageType.setReturnType(imageReturnType);
m_imageDisplay = new com.esri.arcgis.carto.IImageDisplayProxy(m_serverContext.createObject("esricarto.ImageDisplay"));
m_imageDisplay.setHeight(height);
m_imageDisplay.setWidth(width);
m_imageDisplay.setDeviceResolution(dpi);
m_imageDescription = new com.esri.arcgis.carto.IImageDescriptionProxy(m_serverContext.createObject("esricarto.ImageDescription"));
m_imageDescription.setType(m_imageType);
m_imageDescription.setDisplay(m_imageDisplay);
m_mapDescriptionString = m_serverContext.saveObject(m_mapDescription);
m_imageDescriptionString = m_serverContext.saveObject(m_imageDescription);
releaseResources();
}
catch(Exception exception){
throw new Exception("Error in initMap: " + exception.getMessage());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -