build: 오류 수정
parent
d750eeca8a
commit
c8399d6ee8
56
pom.xml
56
pom.xml
|
|
@ -415,10 +415,12 @@
|
|||
<artifactId>gt-main</artifactId>
|
||||
<version>${geotools.version}</version>
|
||||
</dependency>
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>org.geotools</groupId>
|
||||
<artifactId>gt-opengis</artifactId>
|
||||
<version>${geotools.version}</version> </dependency>
|
||||
-->
|
||||
<dependency>
|
||||
<groupId>org.geotools</groupId>
|
||||
<artifactId>gt-referencing</artifactId>
|
||||
|
|
@ -482,11 +484,13 @@
|
|||
<artifactId>gt-process</artifactId>
|
||||
<version>${geotools.version}</version>
|
||||
</dependency>
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>org.geotools</groupId>
|
||||
<artifactId>gt-jdbc</artifactId>
|
||||
<version>${geotools.version}</version>
|
||||
</dependency>
|
||||
-->
|
||||
<dependency>
|
||||
<groupId>org.geotools.jdbc</groupId>
|
||||
<artifactId>gt-jdbc-postgis</artifactId>
|
||||
|
|
@ -533,6 +537,58 @@
|
|||
<version>2.9.1-v20130827-0309</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.opengis</groupId>
|
||||
<artifactId>gt-jdbc</artifactId>
|
||||
<version>11.0</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/gt-jdbc-11.0.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.opengis</groupId>
|
||||
<artifactId>gt-opengis</artifactId>
|
||||
<version>11.0</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/gt-opengis-11.0.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.tmax.tibero</groupId>
|
||||
<artifactId>tibero5-jdbc</artifactId>
|
||||
<version>5.0</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/tibero5-jdbc.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>ar.com.hjg</groupId>
|
||||
<artifactId>pngj</artifactId>
|
||||
<version>2.1.1</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/pngj-2.1.1.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.geowave</groupId>
|
||||
<artifactId>geowave-driver</artifactId>
|
||||
<version>0.9</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/geowave-driver-0.9.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.geotwo</groupId>
|
||||
<artifactId>wms</artifactId>
|
||||
<version>1.0</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/wms.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.4</version> <scope>system</scope>
|
||||
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/ojdbc6-11.2.0.4.jar</systemPath>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,49 @@
|
|||
package com;
|
||||
|
||||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.context.event.ContextRefreshedEvent;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.geotwo.webserver.core.ServerInfo;
|
||||
import com.geotwo.webserver.core.init.ServerConfiguration;
|
||||
import com.geotwo.webserver.core.service.ServiceMngr;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@Component
|
||||
public class MyStartServer implements ApplicationListener<ContextRefreshedEvent> {
|
||||
|
||||
// 로깅을 위한 Logger 인스턴스
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(MyStartServer.class);
|
||||
|
||||
/**
|
||||
* ContextRefreshedEvent가 발생했을 때 호출되는 메서드입니다.
|
||||
* 이 이벤트는 모든 빈이 로드되고 초기화된 후 애플리케이션 컨텍스트가 성공적으로 새로고침되었을 때 발생합니다.
|
||||
*
|
||||
* @param event 발생한 ContextRefreshedEvent
|
||||
*/
|
||||
@Override
|
||||
public void onApplicationEvent(ContextRefreshedEvent event) {
|
||||
// 부모 컨텍스트에도 이벤트가 발생할 수 있으므로, 최상위(루트) 컨텍스트에서만 실행되도록 확인합니다.
|
||||
// 이는 중복 실행을 방지합니다.
|
||||
if (event.getApplicationContext().getParent() == null) {
|
||||
LOGGER.info("**************************************");
|
||||
LOGGER.info("* *");
|
||||
LOGGER.info("* WMS 서버 시작 *");
|
||||
LOGGER.info("* *");
|
||||
LOGGER.info("**************************************");
|
||||
|
||||
// 여기에 서버 시작 시 실행하고 싶은 다른 로직을 추가할 수 있습니다.
|
||||
// 예: 초기 데이터 로드, 스케줄러 시작 등
|
||||
|
||||
if (ServerConfiguration.getInstance().startServer())
|
||||
ServerInfo.getInstance().setStarted(true);
|
||||
else {
|
||||
ServerInfo.getInstance().setStarted(false);
|
||||
}
|
||||
|
||||
ServiceMngr.initServices();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -354,7 +354,7 @@ public class O2LayerUtil {
|
|||
}
|
||||
Envelope targetBBox = bbox.intersection(levelSet.getBBox());
|
||||
if (targetBBox == null || targetBBox.isNull())
|
||||
return gcFactory.create("DEM", raster, (Envelope)bbox);
|
||||
return gcFactory.create("DEM", raster, (org.opengis.geometry.Envelope)bbox);
|
||||
double resX = bbox.getWidth() / width;
|
||||
double resY = bbox.getHeight() / height;
|
||||
double res = Math.max(resX, resY);
|
||||
|
|
@ -405,7 +405,7 @@ public class O2LayerUtil {
|
|||
GridSampleDimension[] bands = new GridSampleDimension[raster.getNumBands()];
|
||||
ColorModel model = bands[0].getColorModel(0, bands.length, raster.getSampleModel().getDataType());
|
||||
RenderedImage image = new BufferedImage(model, raster, false, null);
|
||||
return (new GridCoverageFactory()).create("DEM", image, (Envelope)bbox, null, null, propMap);
|
||||
return (new GridCoverageFactory()).create("DEM", image, (org.opengis.geometry.Envelope)bbox, null, null, propMap);
|
||||
}
|
||||
|
||||
public static ArrayList<O2LayerIndex> calBlockIndex(O2LayerLevel level, Envelope cBBox) throws Exception {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import com.vividsolutions.jts.geom.Geometry;
|
|||
import java.io.IOException;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -143,86 +144,83 @@ public class FeatureMngr {
|
|||
}
|
||||
|
||||
public static List<FeatureId> insertFeature(LayerFactory.LayerType layerType, String serverName, String tableName, SimpleFeature feature, boolean useProvidedFid) throws Exception {
|
||||
try {
|
||||
JDBCFeatureStore featureStore = O2DSMngr.getFeatureStore(layerType, serverName, tableName);
|
||||
SimpleFeatureType featureType = featureStore.getSchema();
|
||||
for (PropertyDescriptor property : feature.getFeatureType().getDescriptors()) {
|
||||
if (featureType.getDescriptor(property.getName().getLocalPart().toUpperCase()) == null)
|
||||
if (!property.getName().getLocalPart().equalsIgnoreCase("NAME") &&
|
||||
!property.getName().getLocalPart().equalsIgnoreCase("DESCRIPTION") &&
|
||||
!property.getName().getLocalPart().equalsIgnoreCase("BOUNDEDBY"))
|
||||
throw new Exception("Input Property [" + property.getName().getLocalPart() + "] is not exist.");
|
||||
}
|
||||
if (useProvidedFid &&
|
||||
featureStore.getPrimaryKey() != null &&
|
||||
featureStore.getPrimaryKey().getColumns().size() != 0) {
|
||||
String pkColumn = ((PrimaryKeyColumn)featureStore.getPrimaryKey().getColumns().get(0)).getName();
|
||||
if (feature.getProperty(pkColumn) != null) {
|
||||
Object pkValue = feature.getProperty(pkColumn).getValue();
|
||||
Id id = QueryMngr.filterFactory.id(new FeatureId[] { (FeatureId)new FeatureIdImpl(pkValue.toString()) });
|
||||
int count = featureStore.getCount(new Query(featureStore.getSchema().getTypeName(), (Filter)id));
|
||||
if (count != 0)
|
||||
throw new SQLException("Can't insert feature :: Already Exist PrimaryKey Value [" + feature.getIdentifier().getID() + "]");
|
||||
}
|
||||
}
|
||||
RefindInsertFeatureCollection refineFeatureCollection =
|
||||
new RefindInsertFeatureCollection(feature, (ContentFeatureStore)featureStore, useProvidedFid);
|
||||
List<FeatureId> fID = null;
|
||||
DefaultTransaction transaction = new DefaultTransaction("insert");
|
||||
try {
|
||||
featureStore.setTransaction((Transaction)transaction);
|
||||
FeatureWriter<SimpleFeatureType, SimpleFeature> writer = featureStore.getWriter((Filter)Filter.INCLUDE, 1);
|
||||
SimpleFeature toWrite = (SimpleFeature)writer.next();
|
||||
JDBCFeatureReader.ResultSetFeature resultSetFeature = ResultSetFeatureRefinder.refindResultSetFeature(toWrite);
|
||||
fID = new LinkedList<FeatureId>();
|
||||
SimpleFeatureIterator simpleFeatureIterator = refineFeatureCollection.features();
|
||||
try {
|
||||
while (simpleFeatureIterator.hasNext()) {
|
||||
SimpleFeature refineFeature = (SimpleFeature)simpleFeatureIterator.next();
|
||||
for (int i = 0; i < resultSetFeature.getType().getAttributeCount(); i++) {
|
||||
String name = resultSetFeature.getType().getDescriptor(i).getLocalName();
|
||||
resultSetFeature.setAttribute(name, refineFeature.getAttribute(name));
|
||||
}
|
||||
if (refineFeature.getUserData().size() > 0)
|
||||
resultSetFeature.getUserData().putAll(refineFeature.getUserData());
|
||||
if (featureStore.getQueryCapabilities().isUseProvidedFIDSupported() && (
|
||||
(Boolean)refineFeature.getUserData().get(Hints.USE_PROVIDED_FID)).booleanValue())
|
||||
((FeatureIdImpl)resultSetFeature.getIdentifier()).setID(refineFeature.getID());
|
||||
writer.write();
|
||||
fID.add(resultSetFeature.getIdentifier());
|
||||
}
|
||||
} finally {
|
||||
writer.close();
|
||||
simpleFeatureIterator.close();
|
||||
}
|
||||
transaction.commit();
|
||||
} catch (Exception e) {
|
||||
transaction.rollback();
|
||||
throw e;
|
||||
} finally {
|
||||
transaction.close();
|
||||
}
|
||||
if (feature.getDefaultGeometry() != null ||
|
||||
feature.getDefaultGeometry() instanceof Geometry) {
|
||||
Geometry insertGeom = (Geometry)feature.getDefaultGeometry();
|
||||
if (insertGeom.getUserData() != null &&
|
||||
insertGeom.getUserData() instanceof CoordinateReferenceSystem &&
|
||||
featureType.getCoordinateReferenceSystem() != null) {
|
||||
CoordinateReferenceSystem crs = (CoordinateReferenceSystem)insertGeom.getUserData();
|
||||
if (!CRS.equalsIgnoreMetadata(crs, featureType.getCoordinateReferenceSystem())) {
|
||||
MathTransform transform = CRS.findMathTransform(crs, featureType.getCoordinateReferenceSystem(), true);
|
||||
insertGeom = JTS.transform(insertGeom, transform);
|
||||
}
|
||||
}
|
||||
Envelope envelope = insertGeom.getEnvelopeInternal();
|
||||
onInsertMetaData(featureStore, fID, envelope);
|
||||
}
|
||||
LogMngr.getInstance().logInfo("[DB]", "Insert Success :: " + serverName + "/" + tableName + ">" + fID.toString());
|
||||
return fID;
|
||||
} catch (Exception eek) {
|
||||
LogMngr.getInstance().logInfo("[DB]", "Insert Fail :: " + eek);
|
||||
throw new SQLException("Insert Fail :: " + eek);
|
||||
}
|
||||
String pkColumn;
|
||||
JDBCFeatureStore featureStore = O2DSMngr.getFeatureStore((LayerFactory.LayerType)layerType, (String)serverName, (String)tableName);
|
||||
SimpleFeatureType featureType = featureStore.getSchema();
|
||||
for (PropertyDescriptor property : feature.getFeatureType().getDescriptors()) {
|
||||
if (featureType.getDescriptor(property.getName().getLocalPart().toUpperCase()) != null || property.getName().getLocalPart().equalsIgnoreCase("NAME") || property.getName().getLocalPart().equalsIgnoreCase("DESCRIPTION") || property.getName().getLocalPart().equalsIgnoreCase("BOUNDEDBY")) continue;
|
||||
throw new Exception("Input Property [" + property.getName().getLocalPart() + "] is not exist.");
|
||||
}
|
||||
if (useProvidedFid && featureStore.getPrimaryKey() != null && featureStore.getPrimaryKey().getColumns().size() != 0 && feature.getProperty(pkColumn = ((PrimaryKeyColumn)featureStore.getPrimaryKey().getColumns().get(0)).getName()) != null) {
|
||||
Object pkValue = feature.getProperty(pkColumn).getValue();
|
||||
Id filter = QueryMngr.filterFactory.id(new FeatureId[]{new FeatureIdImpl(pkValue.toString())});
|
||||
int count = featureStore.getCount(new Query(featureStore.getSchema().getTypeName(), (Filter)filter));
|
||||
if (count != 0) {
|
||||
throw new SQLException("Can't insert feature :: Already Exist PrimaryKey Value [" + feature.getIdentifier().getID() + "]");
|
||||
}
|
||||
}
|
||||
RefindInsertFeatureCollection refineFeatureCollection = new RefindInsertFeatureCollection(feature, (ContentFeatureStore)featureStore, useProvidedFid);
|
||||
LinkedList<FeatureId> fID = null;
|
||||
DefaultTransaction transaction = new DefaultTransaction("insert");
|
||||
try {
|
||||
try {
|
||||
featureStore.setTransaction((Transaction)transaction);
|
||||
FeatureWriter writer = featureStore.getWriter((Filter)Filter.INCLUDE, 1);
|
||||
SimpleFeature toWrite = (SimpleFeature)writer.next();
|
||||
toWrite = ResultSetFeatureRefinder.refindResultSetFeature((SimpleFeature)toWrite);
|
||||
fID = new LinkedList<FeatureId>();
|
||||
SimpleFeatureIterator f = refineFeatureCollection.features();
|
||||
try {
|
||||
while (f.hasNext()) {
|
||||
SimpleFeature refineFeature = (SimpleFeature)f.next();
|
||||
int i = 0;
|
||||
while (i < toWrite.getType().getAttributeCount()) {
|
||||
String name = toWrite.getType().getDescriptor(i).getLocalName();
|
||||
toWrite.setAttribute(name, refineFeature.getAttribute(name));
|
||||
++i;
|
||||
}
|
||||
if (refineFeature.getUserData().size() > 0) {
|
||||
toWrite.getUserData().putAll(refineFeature.getUserData());
|
||||
}
|
||||
if (featureStore.getQueryCapabilities().isUseProvidedFIDSupported() && ((Boolean)refineFeature.getUserData().get(Hints.USE_PROVIDED_FID)).booleanValue()) {
|
||||
((FeatureIdImpl)toWrite.getIdentifier()).setID(refineFeature.getID());
|
||||
}
|
||||
writer.write();
|
||||
fID.add(toWrite.getIdentifier());
|
||||
}
|
||||
}
|
||||
finally {
|
||||
writer.close();
|
||||
f.close();
|
||||
}
|
||||
transaction.commit();
|
||||
}
|
||||
catch (Exception e) {
|
||||
transaction.rollback();
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
finally {
|
||||
transaction.close();
|
||||
}
|
||||
if (feature.getDefaultGeometry() != null || feature.getDefaultGeometry() instanceof Geometry) {
|
||||
CoordinateReferenceSystem crs;
|
||||
Geometry insertGeom = (Geometry)feature.getDefaultGeometry();
|
||||
if (insertGeom.getUserData() != null && insertGeom.getUserData() instanceof CoordinateReferenceSystem && featureType.getCoordinateReferenceSystem() != null && !CRS.equalsIgnoreMetadata((Object)(crs = (CoordinateReferenceSystem)insertGeom.getUserData()), (Object)featureType.getCoordinateReferenceSystem())) {
|
||||
MathTransform transform = CRS.findMathTransform((CoordinateReferenceSystem)crs, (CoordinateReferenceSystem)featureType.getCoordinateReferenceSystem(), (boolean)true);
|
||||
insertGeom = JTS.transform((Geometry)insertGeom, (MathTransform)transform);
|
||||
}
|
||||
Envelope envelope = insertGeom.getEnvelopeInternal();
|
||||
FeatureMngr.onInsertMetaData(featureStore, fID, envelope);
|
||||
}
|
||||
LogMngr.getInstance().logInfo("[DB]", "Insert Success :: " + serverName + "/" + tableName + ">" + ((Object)fID).toString());
|
||||
return fID;
|
||||
}
|
||||
catch (Exception eek) {
|
||||
LogMngr.getInstance().logInfo("[DB]", "Insert Fail :: " + eek);
|
||||
throw new SQLException("Insert Fail :: " + eek);
|
||||
}
|
||||
}
|
||||
|
||||
public static List<FeatureId> insertFeatureCollection(LayerFactory.LayerType layerType, String serverName, String tableName, SimpleFeatureCollection collection, boolean useProvidedFid) throws Exception {
|
||||
|
|
@ -459,16 +457,36 @@ public class FeatureMngr {
|
|||
}
|
||||
|
||||
private static double getMaxCount(JDBCFeatureStore featureStore, String keyField) throws SQLException, IOException {
|
||||
Connection cx = featureStore.getDataStore().getConnection(Transaction.AUTO_COMMIT);
|
||||
Statement st = cx.createStatement();
|
||||
try {
|
||||
String sql = "select max(" + keyField + ") from " + featureStore.getSchema().getTypeName();
|
||||
LogMngr.getInstance().logDebug("[DB]", "Lookup max count for [" + featureStore.getSchema().getTypeName() + "]");
|
||||
LogMngr.getInstance().logDebug("[DB]", "QUERY : " + sql);
|
||||
} finally {
|
||||
featureStore.getDataStore().closeSafe(cx);
|
||||
featureStore.getDataStore().closeSafe(st);
|
||||
}
|
||||
Connection cx = featureStore.getDataStore().getConnection(Transaction.AUTO_COMMIT);
|
||||
Statement st = cx.createStatement();
|
||||
try {
|
||||
Double max;
|
||||
ResultSet rs;
|
||||
block8: {
|
||||
String sql = "select max(" + keyField + ") from " + featureStore.getSchema().getTypeName();
|
||||
LogMngr.getInstance().logDebug("[DB]", "Lookup max count for [" + featureStore.getSchema().getTypeName() + "]");
|
||||
LogMngr.getInstance().logDebug("[DB]", "QUERY : " + sql);
|
||||
rs = st.executeQuery(sql);
|
||||
try {
|
||||
rs.next();
|
||||
max = rs.getDouble(1);
|
||||
if (max != null) break block8;
|
||||
}
|
||||
catch (Throwable throwable) {
|
||||
rs.close();
|
||||
throw throwable;
|
||||
}
|
||||
rs.close();
|
||||
return 0.0;
|
||||
}
|
||||
double d = max;
|
||||
rs.close();
|
||||
return d;
|
||||
}
|
||||
finally {
|
||||
featureStore.getDataStore().closeSafe(cx);
|
||||
featureStore.getDataStore().closeSafe(st);
|
||||
}
|
||||
}
|
||||
|
||||
private static SimpleFeature refineInsertFeature(ContentFeatureStore featureStore, SimpleFeature feature) throws Exception {
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ public class RenderFeatureSource implements SimpleFeatureSource {
|
|||
}
|
||||
|
||||
public void accepts(Query query, FeatureVisitor visitor, ProgressListener progress) throws IOException {
|
||||
NullProgressListener nullProgressListener;
|
||||
NullProgressListener nullProgressListener = null;
|
||||
if (progress == null)
|
||||
nullProgressListener = new NullProgressListener();
|
||||
FeatureReader<SimpleFeatureType, SimpleFeature> reader = getReader(query);
|
||||
|
|
@ -143,7 +143,6 @@ public class RenderFeatureSource implements SimpleFeatureSource {
|
|||
}
|
||||
|
||||
public final FeatureReader<SimpleFeatureType, SimpleFeature> getReader(Query query) throws IOException {
|
||||
System.out.println("thkim RenderFeatureSource.getReader() called with query: " + query);
|
||||
RenderFeatureReader reader = new RenderFeatureReader(this.delegate, query);
|
||||
if (query != null) {
|
||||
ReferencedEnvelope bbox = new ReferencedEnvelope();
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ public class LegendGraphicBuilder {
|
|||
layersImages.add(titleImage);
|
||||
}
|
||||
for (int pos = 0; pos < layers.size(); pos++) {
|
||||
Feature sampleFeature;
|
||||
Feature sampleFeature = null;
|
||||
Rule[] applicableRules;
|
||||
FeatureType renderLayer = layers.get(pos);
|
||||
Style renderStyle = styles.get(pos);
|
||||
|
|
@ -287,7 +287,7 @@ public class LegendGraphicBuilder {
|
|||
shapePainter.paint(graphics, this.samplePoint, legend, scale.doubleValue(), false);
|
||||
} else {
|
||||
for (int sIdx = 0; sIdx < symbolizers.length; sIdx++) {
|
||||
PointSymbolizer pointSymbolizer;
|
||||
PointSymbolizer pointSymbolizer = null;
|
||||
Symbolizer symbolizer = symbolizers[sIdx];
|
||||
if (symbolizer instanceof org.geotools.styling.RasterSymbolizer)
|
||||
throw new IllegalStateException("It is not legal to have a RasterSymbolizer here");
|
||||
|
|
@ -400,7 +400,7 @@ public class LegendGraphicBuilder {
|
|||
}
|
||||
|
||||
private Feature createSampleFeature(FeatureType schema) {
|
||||
Feature sampleFeature;
|
||||
Feature sampleFeature = null;
|
||||
try {
|
||||
if (schema instanceof SimpleFeatureType) {
|
||||
if (hasMixedGeometry((SimpleFeatureType)schema)) {
|
||||
|
|
|
|||
|
|
@ -93,21 +93,9 @@ import org.opengis.filter.expression.Expression;
|
|||
import org.opengis.filter.expression.Function;
|
||||
import org.opengis.filter.expression.Literal;
|
||||
import org.opengis.filter.expression.PropertyName;
|
||||
import org.opengis.style.ChannelSelection;
|
||||
import org.opengis.style.ColorMap;
|
||||
import org.opengis.style.ContrastEnhancement;
|
||||
import org.opengis.style.ContrastMethod;
|
||||
import org.opengis.style.Displacement;
|
||||
import org.opengis.style.Fill;
|
||||
import org.opengis.style.Font;
|
||||
import org.opengis.style.Graphic;
|
||||
import org.opengis.style.GraphicLegend;
|
||||
import org.opengis.style.Halo;
|
||||
import org.opengis.style.LabelPlacement;
|
||||
import org.opengis.style.SemanticType;
|
||||
import org.opengis.style.ShadedRelief;
|
||||
import org.opengis.style.Stroke;
|
||||
import org.opengis.style.Symbolizer;
|
||||
import org.opengis.util.InternationalString;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
|
@ -1359,7 +1347,7 @@ public class SLDParser100 {
|
|||
}
|
||||
if (icon == null) {
|
||||
this.LOGGER.warning("returning empty icon");
|
||||
icon = new EmptyIcon(null);
|
||||
icon = new EmptyIcon();
|
||||
}
|
||||
extgraph = this.factory.createExternalGraphic(icon, format);
|
||||
} else {
|
||||
|
|
@ -1695,7 +1683,7 @@ public class SLDParser100 {
|
|||
}
|
||||
|
||||
protected LabelPlacement parseLabelPlacement(Node root) {
|
||||
LinePlacement linePlacement;
|
||||
LinePlacement linePlacement = null;
|
||||
if (this.LOGGER.isLoggable(Level.FINEST))
|
||||
this.LOGGER.finest("parsing labelPlacement");
|
||||
LabelPlacement ret = null;
|
||||
|
|
@ -1718,7 +1706,7 @@ public class SLDParser100 {
|
|||
}
|
||||
|
||||
protected PointPlacement parsePointPlacement(Node root) {
|
||||
Expression expression;
|
||||
Expression expression = null;
|
||||
if (this.LOGGER.isLoggable(Level.FINEST))
|
||||
this.LOGGER.finest("parsing pointPlacement");
|
||||
Literal literal = this.ff.literal(0.0D);
|
||||
|
|
@ -1750,7 +1738,7 @@ public class SLDParser100 {
|
|||
}
|
||||
|
||||
protected LinePlacement parseLinePlacement(Node root) {
|
||||
Expression expression;
|
||||
Expression expression = null;
|
||||
if (this.LOGGER.isLoggable(Level.FINEST))
|
||||
this.LOGGER.finest("parsing linePlacement");
|
||||
Literal literal = this.ff.literal(0.0D);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,78 +1,81 @@
|
|||
package com.geotwo.webserver.core.tile.wmts;
|
||||
|
||||
import com.geotwo.webserver.core.tile.wmts.TileMatrix;
|
||||
import java.io.File;
|
||||
|
||||
public class TileMatrixRule {
|
||||
public enum RuleType {
|
||||
COLUMN_FIRST, ROW_FIRST, GWC;
|
||||
}
|
||||
|
||||
public static String createPath(TileMatrix matrix, int col, int row, String format) {
|
||||
StringBuffer path;
|
||||
long shift;
|
||||
long half;
|
||||
int digits;
|
||||
long halfx;
|
||||
long halfy;
|
||||
if (!matrix.isTopLeft())
|
||||
row = matrix.getMatrixHeight() - 1 - row;
|
||||
switch (matrix.getRule()) {
|
||||
case null:
|
||||
return String.valueOf(matrix.getIdentifier()) + File.separatorChar + col + File.separatorChar + row + "." + format;
|
||||
case ROW_FIRST:
|
||||
return String.valueOf(matrix.getIdentifier()) + File.separatorChar + row + File.separatorChar + col + "." + format;
|
||||
case GWC:
|
||||
path = new StringBuffer();
|
||||
path.append(matrix.getIdentifier());
|
||||
path.append(File.separatorChar);
|
||||
shift = (matrix.getLevel() / 2);
|
||||
half = (2 << (int)shift);
|
||||
digits = 1;
|
||||
if (half > 10L)
|
||||
digits = (int)Math.log10(half) + 1;
|
||||
halfx = col / half;
|
||||
halfy = row / half;
|
||||
zeroPadder(halfx, digits, path);
|
||||
path.append('_');
|
||||
zeroPadder(halfy, digits, path);
|
||||
path.append(File.separatorChar);
|
||||
zeroPadder(col, 2 * digits, path);
|
||||
path.append('_');
|
||||
zeroPadder(row, 2 * digits, path);
|
||||
path.append('.');
|
||||
path.append(format);
|
||||
return path.toString();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static RuleType getRuleType(String rule) {
|
||||
if (rule.equalsIgnoreCase("COLUMN") || rule.equalsIgnoreCase("COL") || rule.equalsIgnoreCase("C") || rule.equalsIgnoreCase("X"))
|
||||
return RuleType.COLUMN_FIRST;
|
||||
if (rule.equalsIgnoreCase("ROW") || rule.equalsIgnoreCase("R") || rule.equalsIgnoreCase("Y"))
|
||||
return RuleType.ROW_FIRST;
|
||||
if (rule.equalsIgnoreCase("GWC") || rule.equalsIgnoreCase("G") || rule.equalsIgnoreCase("GEOWEBCACHE"))
|
||||
return RuleType.GWC;
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void zeroPadder(long number, int order, StringBuffer padding) {
|
||||
int numberOrder = 1;
|
||||
if (number > 9L)
|
||||
if (number > 11L) {
|
||||
numberOrder = (int)Math.ceil(Math.log10(number) - 0.001D);
|
||||
} else {
|
||||
numberOrder = 2;
|
||||
}
|
||||
int diffOrder = order - numberOrder;
|
||||
if (diffOrder > 0) {
|
||||
while (diffOrder > 0) {
|
||||
padding.append('0');
|
||||
diffOrder--;
|
||||
}
|
||||
padding.append(number);
|
||||
} else {
|
||||
padding.append(number);
|
||||
}
|
||||
}
|
||||
}
|
||||
public static String createPath(TileMatrix matrix, int col, int row, String format) {
|
||||
if (!matrix.isTopLeft()) {
|
||||
row = matrix.getMatrixHeight() - 1 - row;
|
||||
}
|
||||
switch (matrix.getRule()) {
|
||||
case COLUMN_FIRST: {
|
||||
return String.valueOf(matrix.getIdentifier()) + File.separatorChar + col + File.separatorChar + row + "." + format;
|
||||
}
|
||||
case ROW_FIRST: {
|
||||
return String.valueOf(matrix.getIdentifier()) + File.separatorChar + row + File.separatorChar + col + "." + format;
|
||||
}
|
||||
case GWC: {
|
||||
StringBuffer path = new StringBuffer();
|
||||
path.append(matrix.getIdentifier());
|
||||
path.append(File.separatorChar);
|
||||
long shift = matrix.getLevel() / 2;
|
||||
long half = 2 << (int)shift;
|
||||
int digits = 1;
|
||||
if (half > 10L) {
|
||||
digits = (int)Math.log10(half) + 1;
|
||||
}
|
||||
long halfx = (long)col / half;
|
||||
long halfy = (long)row / half;
|
||||
TileMatrixRule.zeroPadder(halfx, digits, path);
|
||||
path.append('_');
|
||||
TileMatrixRule.zeroPadder(halfy, digits, path);
|
||||
path.append(File.separatorChar);
|
||||
TileMatrixRule.zeroPadder(col, 2 * digits, path);
|
||||
path.append('_');
|
||||
TileMatrixRule.zeroPadder(row, 2 * digits, path);
|
||||
path.append('.');
|
||||
path.append(format);
|
||||
return path.toString();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static RuleType getRuleType(String rule) {
|
||||
if (rule.equalsIgnoreCase("COLUMN") || rule.equalsIgnoreCase("COL") || rule.equalsIgnoreCase("C") || rule.equalsIgnoreCase("X")) {
|
||||
return RuleType.COLUMN_FIRST;
|
||||
}
|
||||
if (rule.equalsIgnoreCase("ROW") || rule.equalsIgnoreCase("R") || rule.equalsIgnoreCase("Y")) {
|
||||
return RuleType.ROW_FIRST;
|
||||
}
|
||||
if (rule.equalsIgnoreCase("GWC") || rule.equalsIgnoreCase("G") || rule.equalsIgnoreCase("GEOWEBCACHE")) {
|
||||
return RuleType.GWC;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void zeroPadder(long number, int order, StringBuffer padding) {
|
||||
int diffOrder;
|
||||
int numberOrder = 1;
|
||||
if (number > 9L) {
|
||||
numberOrder = number > 11L ? (int)Math.ceil(Math.log10(number) - 0.001) : 2;
|
||||
}
|
||||
if ((diffOrder = order - numberOrder) > 0) {
|
||||
while (diffOrder > 0) {
|
||||
padding.append('0');
|
||||
--diffOrder;
|
||||
}
|
||||
padding.append(number);
|
||||
} else {
|
||||
padding.append(number);
|
||||
}
|
||||
}
|
||||
|
||||
public static enum RuleType {
|
||||
COLUMN_FIRST,
|
||||
ROW_FIRST,
|
||||
GWC;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -222,7 +222,7 @@ public class GeoWaveFeatureSource extends ContentFeatureSource {
|
|||
|
||||
protected FeatureReader<SimpleFeatureType, SimpleFeature> getReaderInternal(Query query) throws IOException {
|
||||
FeatureReader<SimpleFeatureType, SimpleFeature> reader;
|
||||
ReTypeFeatureReader reTypeFeatureReader;
|
||||
ReTypeFeatureReader reTypeFeatureReader = null;
|
||||
Filter[] split = splitFilter(query.getFilter());
|
||||
Filter preFilter = split[0];
|
||||
Filter postFilter = split[1];
|
||||
|
|
|
|||
|
|
@ -414,7 +414,7 @@ public class NonSpatialDialect extends PreparedStatementSQLDialect implements O2
|
|||
|
||||
public void setGeometryValue(Geometry g, int dimension, int srid, Class binding, PreparedStatement ps, int column) throws SQLException {
|
||||
if (g != null) {
|
||||
LineString lineString;
|
||||
LineString lineString = null;
|
||||
if (g instanceof LinearRing)
|
||||
lineString = g.getFactory().createLineString(((LinearRing)g).getCoordinateSequence());
|
||||
WKBWriter wkbWriter = new WKBWriter(dimension);
|
||||
|
|
|
|||
|
|
@ -1201,7 +1201,7 @@ public final class SDO {
|
|||
List<Polygon> list = new LinkedList();
|
||||
for (int i = triplet; i < endTriplet; i++) {
|
||||
LineString lineString;
|
||||
Polygon polygon;
|
||||
Polygon polygon = null;
|
||||
int etype = ETYPE(elemInfo, i);
|
||||
int interpretation = INTERPRETATION(elemInfo, i);
|
||||
switch (etype) {
|
||||
|
|
|
|||
|
|
@ -373,7 +373,7 @@ public class SimpleDialect extends PreparedStatementSQLDialect implements O2SqlD
|
|||
|
||||
public void setGeometryValue(Geometry g, int dimension, int srid, Class binding, PreparedStatement ps, int column) throws SQLException {
|
||||
if (g != null) {
|
||||
LineString lineString;
|
||||
LineString lineString = null;
|
||||
if (g instanceof LinearRing)
|
||||
lineString = g.getFactory().createLineString(((LinearRing)g).getCoordinateSequence());
|
||||
WKBWriter wkbWriter = new WKBWriter(dimension);
|
||||
|
|
|
|||
|
|
@ -2,9 +2,11 @@ package com.geotwo.webserver.core.vector.jdbc.simple;
|
|||
|
||||
import com.geotwo.webserver.core.ServerContext;
|
||||
import com.geotwo.webserver.core.log.LogMngr;
|
||||
import com.geotwo.webserver.core.map.layer.FeatureLayer;
|
||||
import com.geotwo.webserver.core.map.layer.Layer;
|
||||
import com.geotwo.webserver.core.util.ServerUtil;
|
||||
import com.geotwo.webserver.core.vector.crs.CRSMngr;
|
||||
import com.geotwo.webserver.core.vector.jdbc.simple.SimpleDialect;
|
||||
import com.vividsolutions.jts.geom.Envelope;
|
||||
import com.vividsolutions.jts.geom.Geometry;
|
||||
import com.vividsolutions.jts.geom.Polygon;
|
||||
|
|
@ -25,138 +27,153 @@ import org.opengis.geometry.BoundingBox;
|
|||
import org.opengis.referencing.crs.CoordinateReferenceSystem;
|
||||
import org.opengis.referencing.operation.TransformException;
|
||||
|
||||
public class SimpleFilterToSQL extends PreparedFilterToSQL {
|
||||
private SimpleDialect dsDialect;
|
||||
|
||||
public SimpleFilterToSQL(SimpleDialect dialect) {
|
||||
this.dsDialect = dialect;
|
||||
}
|
||||
|
||||
protected FilterCapabilities createFilterCapabilities() {
|
||||
FilterCapabilities caps = new FilterCapabilities();
|
||||
caps.addAll(SQLDialect.BASE_DBMS_CAPABILITIES);
|
||||
caps.addType(BBOX.class);
|
||||
return caps;
|
||||
}
|
||||
|
||||
protected Object visitBinarySpatialOperator(BinarySpatialOperator filter, PropertyName property, Literal geometry, boolean swapped, Object extraData) {
|
||||
try {
|
||||
if (filter instanceof BBOX) {
|
||||
BBOX bbox = (BBOX)filter;
|
||||
ReferencedEnvelope referencedEnvelope = ReferencedEnvelope.reference(bbox.getBounds());
|
||||
Envelope envelope = intersectionBound((Envelope)referencedEnvelope);
|
||||
if (envelope == null || envelope.isNull()) {
|
||||
this.out.append(" 1=0 ");
|
||||
LogMngr.getInstance().logDebug("[DB]", "WHERE : " + this.out.toString());
|
||||
return extraData;
|
||||
}
|
||||
String bboxSQL = this.dsDialect.simpleSQL.getSqlBBox();
|
||||
public class SimpleFilterToSQL
|
||||
extends PreparedFilterToSQL {
|
||||
private SimpleDialect dsDialect;
|
||||
|
||||
public SimpleFilterToSQL(SimpleDialect dialect) {
|
||||
this.dsDialect = dialect;
|
||||
}
|
||||
|
||||
protected FilterCapabilities createFilterCapabilities() {
|
||||
FilterCapabilities caps = new FilterCapabilities();
|
||||
caps.addAll(SQLDialect.BASE_DBMS_CAPABILITIES);
|
||||
caps.addType(BBOX.class);
|
||||
return caps;
|
||||
}
|
||||
|
||||
protected Object visitBinarySpatialOperator(BinarySpatialOperator filter, PropertyName property, Literal geometry, boolean swapped, Object extraData) {
|
||||
try {
|
||||
Envelope envelop;
|
||||
if (filter instanceof BBOX) {
|
||||
BBOX bbox = (BBOX)filter;
|
||||
envelop = ReferencedEnvelope.reference((BoundingBox)bbox.getBounds());
|
||||
if ((envelop = this.intersectionBound((Envelope)envelop)) == null || envelop.isNull()) {
|
||||
this.out.append(" 1=0 ");
|
||||
LogMngr.getInstance().logDebug("[DB]", "WHERE : " + this.out.toString());
|
||||
return extraData;
|
||||
}
|
||||
} else {
|
||||
throw new RuntimeException("Unsupported filter type " + filter.getClass());
|
||||
}
|
||||
String bboxSQL = this.dsDialect.simpleSQL.getSqlBBox();
|
||||
this.dsDialect.simpleSQL.getClass();
|
||||
bboxSQL = ServerUtil.replaceFirst((String)bboxSQL, (String)"?GEOMETRY?", (String)this.findPropertyName(property));
|
||||
this.dsDialect.simpleSQL.getClass();
|
||||
bboxSQL = ServerUtil.replaceFirst((String)bboxSQL, (String)"?GEOMETRY?", (String)this.setLiteralBBox(bboxSQL, (Envelope)envelop, extraData));
|
||||
this.out.append(bboxSQL);
|
||||
LogMngr.getInstance().logDebug("[DB]", "WHERE : " + this.out.toString());
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw new RuntimeException("Fail to create Filter SQL", e);
|
||||
}
|
||||
return extraData;
|
||||
}
|
||||
|
||||
public String findPropertyName(PropertyName expression) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
if (expression instanceof JoinPropertyName) {
|
||||
sb.append(this.escapeName(((JoinPropertyName)expression).getAlias()));
|
||||
sb.append(".");
|
||||
}
|
||||
AttributeDescriptor attribute = null;
|
||||
try {
|
||||
attribute = (AttributeDescriptor)expression.evaluate((Object)this.featureType);
|
||||
}
|
||||
catch (Exception exception) {
|
||||
// empty catch block
|
||||
}
|
||||
String encodedField = attribute != null ? this.fieldEncoder.encode(this.escapeName(attribute.getLocalName())) : this.fieldEncoder.encode(this.escapeName(expression.getPropertyName()));
|
||||
sb.append(encodedField);
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public String setLiteralBBox(String bboxSQL, Envelope envelope, Object context) {
|
||||
Geometry polygon = JTS.toGeometry((Envelope)envelope);
|
||||
if (!polygon.isValid()) {
|
||||
polygon = polygon.buffer(1.0E-5);
|
||||
}
|
||||
this.literalValues.add(polygon);
|
||||
this.dimensions.add(this.currentDimension);
|
||||
polygon.setSRID(this.currentSRID.intValue());
|
||||
this.SRIDs.add(this.currentSRID);
|
||||
Class<?> clazz = null;
|
||||
if (context instanceof Class) {
|
||||
clazz = (Class<?>)context;
|
||||
} else if (polygon != null) {
|
||||
clazz = polygon.getClass();
|
||||
}
|
||||
this.literalTypes.add(clazz);
|
||||
StringBuffer sb = new StringBuffer();
|
||||
if (polygon == null || this.dialect == null) {
|
||||
sb.append("?");
|
||||
} else if (Geometry.class.isAssignableFrom(polygon.getClass())) {
|
||||
int srid = this.currentSRID != null ? this.currentSRID : -1;
|
||||
int dimension = this.currentDimension != null ? this.currentDimension : -1;
|
||||
this.dialect.prepareGeometryValue((Geometry)polygon, dimension, srid, Geometry.class, sb);
|
||||
} else if (this.encodingFunction) {
|
||||
this.dialect.prepareFunctionArgument(clazz, sb);
|
||||
} else {
|
||||
sb.append("?");
|
||||
}
|
||||
String string = this.dsDialect.simpleSQL.getGeomFromWKB();
|
||||
this.dsDialect.simpleSQL.getClass();
|
||||
bboxSQL = ServerUtil.replaceFirst(bboxSQL, "?GEOMETRY?", findPropertyName(property));
|
||||
String resultStr = ServerUtil.replaceFirst((String)string, (String)"?WKB?", (String)sb.toString());
|
||||
this.dsDialect.simpleSQL.getClass();
|
||||
bboxSQL = ServerUtil.replaceFirst(bboxSQL, "?GEOMETRY?", setLiteralBBox(bboxSQL, envelope, extraData));
|
||||
this.out.append(bboxSQL);
|
||||
LogMngr.getInstance().logDebug("[DB]", "WHERE : " + this.out.toString());
|
||||
} else {
|
||||
throw new RuntimeException("Unsupported filter type " + filter.getClass());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Fail to create Filter SQL", e);
|
||||
}
|
||||
return extraData;
|
||||
}
|
||||
|
||||
public String findPropertyName(PropertyName expression) {
|
||||
String encodedField;
|
||||
StringBuffer sb = new StringBuffer();
|
||||
if (expression instanceof JoinPropertyName) {
|
||||
sb.append(escapeName(((JoinPropertyName)expression).getAlias()));
|
||||
sb.append(".");
|
||||
}
|
||||
AttributeDescriptor attribute = null;
|
||||
try {
|
||||
attribute = (AttributeDescriptor)expression.evaluate(this.featureType);
|
||||
} catch (Exception exception) {}
|
||||
if (attribute != null) {
|
||||
encodedField = this.fieldEncoder.encode(escapeName(attribute.getLocalName()));
|
||||
} else {
|
||||
encodedField = this.fieldEncoder.encode(escapeName(expression.getPropertyName()));
|
||||
}
|
||||
sb.append(encodedField);
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public String setLiteralBBox(String bboxSQL, Envelope envelope, Object context) {
|
||||
Geometry geometry;
|
||||
Polygon polygon = JTS.toGeometry(envelope);
|
||||
if (!polygon.isValid())
|
||||
geometry = polygon.buffer(1.0E-5D);
|
||||
this.literalValues.add(geometry);
|
||||
this.dimensions.add(this.currentDimension);
|
||||
geometry.setSRID(this.currentSRID.intValue());
|
||||
this.SRIDs.add(this.currentSRID);
|
||||
Class<?> clazz = null;
|
||||
if (context instanceof Class) {
|
||||
clazz = (Class)context;
|
||||
} else if (geometry != null) {
|
||||
clazz = geometry.getClass();
|
||||
}
|
||||
this.literalTypes.add(clazz);
|
||||
StringBuffer sb = new StringBuffer();
|
||||
if (geometry == null || this.dialect == null) {
|
||||
sb.append("?");
|
||||
} else if (Geometry.class.isAssignableFrom(geometry.getClass())) {
|
||||
int srid = (this.currentSRID != null) ? this.currentSRID.intValue() : -1;
|
||||
int dimension = (this.currentDimension != null) ? this.currentDimension.intValue() : -1;
|
||||
this.dialect.prepareGeometryValue(geometry, dimension, srid, Geometry.class, sb);
|
||||
} else if (this.encodingFunction) {
|
||||
this.dialect.prepareFunctionArgument(clazz, sb);
|
||||
} else {
|
||||
sb.append("?");
|
||||
}
|
||||
this.dsDialect.simpleSQL.getClass();
|
||||
String resultStr = ServerUtil.replaceFirst(this.dsDialect.simpleSQL.getGeomFromWKB(), "?WKB?", sb.toString());
|
||||
this.dsDialect.simpleSQL.getClass();
|
||||
return ServerUtil.replaceFirst(resultStr, "?SRID?", (String)this.currentSRID);
|
||||
}
|
||||
|
||||
private Envelope intersectionBound(Envelope envelop) {
|
||||
try {
|
||||
ArrayList<Layer> layers = ServerContext.getMap().getAllLayers();
|
||||
for (Layer layer : layers) {
|
||||
if (!(layer instanceof com.geotwo.webserver.core.map.layer.FeatureLayer))
|
||||
continue;
|
||||
if (layer.getServerName().equalsIgnoreCase(this.dsDialect.serverName) &&
|
||||
layer.getSourceName().equalsIgnoreCase(this.featureType.getTypeName()))
|
||||
return layer.getBBox().intersection(envelop);
|
||||
}
|
||||
} catch (Exception exception) {}
|
||||
return envelop;
|
||||
}
|
||||
|
||||
private BoundingBox transformFilter(BoundingBox bound) {
|
||||
if (bound.getCoordinateReferenceSystem() == null)
|
||||
return bound;
|
||||
try {
|
||||
CoordinateReferenceSystem targetCRS = getCRS(this.featureType.getTypeName());
|
||||
if (!CRS.equalsIgnoreMetadata(targetCRS, bound.getCoordinateReferenceSystem()))
|
||||
return bound.toBounds(targetCRS);
|
||||
} catch (TransformException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return bound;
|
||||
}
|
||||
|
||||
private CoordinateReferenceSystem getCRS(String typeName) {
|
||||
try {
|
||||
ArrayList<Layer> layers = ServerContext.getMap().getAllLayers();
|
||||
for (Layer layer : layers) {
|
||||
if (!(layer instanceof com.geotwo.webserver.core.map.layer.FeatureLayer))
|
||||
continue;
|
||||
if (layer.getSourceName().equalsIgnoreCase(typeName))
|
||||
return layer.getCRS();
|
||||
}
|
||||
} catch (Exception exception) {}
|
||||
return CRSMngr.getCRS(Integer.valueOf(4326));
|
||||
}
|
||||
}
|
||||
return ServerUtil.replaceFirst((String)resultStr, (String)"?SRID?", (String)("" + this.currentSRID));
|
||||
}
|
||||
|
||||
private Envelope intersectionBound(Envelope envelop) {
|
||||
try {
|
||||
ArrayList layers = ServerContext.getMap().getAllLayers();
|
||||
for (Object obj : layers) {
|
||||
|
||||
Layer layer = null;
|
||||
if (obj instanceof Layer) {
|
||||
layer = (Layer)obj;
|
||||
}
|
||||
if (!(obj instanceof FeatureLayer) || !layer.getServerName().equalsIgnoreCase(this.dsDialect.serverName) || !layer.getSourceName().equalsIgnoreCase(this.featureType.getTypeName())) continue;
|
||||
return layer.getBBox().intersection(envelop);
|
||||
}
|
||||
}
|
||||
catch (Exception exception) {
|
||||
// empty catch block
|
||||
}
|
||||
return envelop;
|
||||
}
|
||||
|
||||
private BoundingBox transformFilter(BoundingBox bound) {
|
||||
if (bound.getCoordinateReferenceSystem() == null) {
|
||||
return bound;
|
||||
}
|
||||
try {
|
||||
CoordinateReferenceSystem targetCRS = this.getCRS(this.featureType.getTypeName());
|
||||
if (!CRS.equalsIgnoreMetadata((Object)targetCRS, (Object)bound.getCoordinateReferenceSystem())) {
|
||||
return bound.toBounds(targetCRS);
|
||||
}
|
||||
}
|
||||
catch (TransformException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return bound;
|
||||
}
|
||||
|
||||
private CoordinateReferenceSystem getCRS(String typeName) {
|
||||
try {
|
||||
ArrayList layers = ServerContext.getMap().getAllLayers();
|
||||
for (Object obj : layers) {
|
||||
|
||||
Layer layer = null;
|
||||
if (obj instanceof Layer) {
|
||||
layer = (Layer)obj;
|
||||
}
|
||||
if (!(layer instanceof FeatureLayer) || !layer.getSourceName().equalsIgnoreCase(typeName)) continue;
|
||||
return layer.getCRS();
|
||||
}
|
||||
}
|
||||
catch (Exception exception) {
|
||||
// empty catch block
|
||||
}
|
||||
return CRSMngr.getCRS((Integer)4326);
|
||||
}
|
||||
}
|
||||
|
|
@ -233,7 +233,7 @@ public class WMSGetCapabilities {
|
|||
for (int k = 0; k < this.layerList.size(); k++) {
|
||||
Layer layer = this.layerList.get(k);
|
||||
if (layer != null) {
|
||||
BoundingBox boundingBox;
|
||||
BoundingBox boundingBox = null;
|
||||
Element layerElement1 = this.doc.createElementNS(this.support.getURI("wms"), "Layer");
|
||||
layerElement.appendChild(layerElement1);
|
||||
Element nameElement1 = this.doc.createElementNS(this.support.getURI("wms"), "Name");
|
||||
|
|
@ -279,7 +279,7 @@ public class WMSGetCapabilities {
|
|||
}
|
||||
|
||||
private Map<String, Object> GetTotalLayerInfo() throws TransformException, FactoryException {
|
||||
ReferencedEnvelope referencedEnvelope1;
|
||||
ReferencedEnvelope referencedEnvelope1 = null;
|
||||
Map<String, Object> totalLayerInfo = new HashMap<String, Object>();
|
||||
List<String> crsList = new ArrayList<String>();
|
||||
Map<String, List<ReferencedEnvelope>> map = new HashMap<String, List<ReferencedEnvelope>>();
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public class WMSGetLegendGraphic {
|
|||
}
|
||||
|
||||
private void writeImage(BufferedImage image, HttpServletResponse resp) throws Exception {
|
||||
ServletOutputStream servletOutputStream;
|
||||
ServletOutputStream servletOutputStream = null;
|
||||
OutputStream out = null;
|
||||
try {
|
||||
String format = this.requestObj.getFormat();
|
||||
|
|
|
|||
|
|
@ -1,20 +0,0 @@
|
|||
GlobalsWeb.WebSystemTitle = ::\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd \ufffd\u0537\u00bd\u00fd\ufffd\ufffd\ufffd::
|
||||
GlobalsWeb.WebManageSystemTitle = ::\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd \ufffd\ufffd\ufffd\ufffd\ufffd\u00fd\ufffd\ufffd\ufffd::
|
||||
#GlobalsWeb.WebXmlPath = D:\\Tomcat6\\webapps\\geoinfo\\web\\grid\\DataXml
|
||||
#GlobalsWeb.WebImagePath = D:\\Tomcat6\\webapps\\geoinfo\\web\\file
|
||||
#GlobalsWeb.WebSupplyPath = D:\\Tomcat6\\webapps\\geoinfo\\web\\supply
|
||||
GlobalsWeb.WebXmlPath = D:\\src\\geoinfo_integration\\WebContent\\web\\grid\\DataXml\\
|
||||
GlobalsWeb.WebImagePath = D:\\egov_geoinfo\\eGovFrameDev-3.5.1-64bit\\workspace\\geoinfo_eGov\\src\\main\\webapp\\web\\file\\
|
||||
GlobalsWeb.WebSupplyPath = D:\\egov_geoinfo\\eGovFrameDev-3.5.1-64bit\\workspace\\geoinfo_eGov\\src\\main\\webapp\\web\\supply\\
|
||||
GlobalsWeb.WebSupplyServer = localhost
|
||||
GlobalsWeb.WebSupplyUser = kict
|
||||
GlobalsWeb.WebSupplyPassword = kictgis1234
|
||||
GlobalsWeb.WebSupplyPort = 10021
|
||||
GlobalsWeb.WebSupplyDir = /geoinfoCH/WebContent/file/service/
|
||||
|
||||
GlobalsWeb.GlbWidth = 600
|
||||
GlobalsWeb.GlbHeight = 600
|
||||
GlobalsWeb.Levels = {6:2445.98,7:1222.99,8:611.50,9:305.75,10:152.87,11:76.44,12:38.22,13:19.11,14:9.55,15:4.78,16:2.39,17:1.19,18:0.60}
|
||||
GlobalsWeb.CurrentLevel = 16
|
||||
GlobalsWeb.GISwms = http://218.232.234.166/o2map/services/wms
|
||||
#GlobalsWeb.GISwms = http://172.12.192.44:8080/o2map/services/wms
|
||||
|
|
@ -1,47 +1,30 @@
|
|||
##############################################
|
||||
################### DB\uad00\ub828 ###################
|
||||
################### DB관련 ###################
|
||||
##############################################
|
||||
|
||||
# Oracle
|
||||
Oracle.Driver=oracle.jdbc.driver.OracleDriver
|
||||
|
||||
################################################################
|
||||
# Oracle.Url=jdbc:oracle:thin:@192.168.0.8:3452:orcl is prod
|
||||
#Oracle.Url=jdbc:oracle:thin:@192.168.0.8:3452:orcl
|
||||
# dbnt devlop server
|
||||
Oracle.Url=jdbc:oracle:thin:@118.219.150.34:1521:ORAGEODEV
|
||||
# develop local server
|
||||
#Oracle.Url=jdbc:oracle:thin:@192.168.86.2:1521:xe
|
||||
# thkim local test
|
||||
#Oracle.Url=jdbc:oracle:thin:@127.0.0.1:1521:ORAGEODEV
|
||||
#Oracle.Url=jdbc:oracle:thin:@vas2.com:1521:ORAGEODEV
|
||||
Oracle.Url=jdbc:oracle:thin:@10.dbnt.co.kr:1521:ORAGEODEV
|
||||
################################################################
|
||||
|
||||
#Oracle.Url=jdbc:oracle:thin:@192.168.0.29:1521:xe
|
||||
#Oracle.Url=jdbc:oracle:thin:@192.168.0.71:1521:orcl
|
||||
#Oracle.Url=jdbc:oracle:thin:@220.121.145.78:7080:xe
|
||||
#Oracle.Url=jdbc:oracle:thin:@localhost:1521:orcl
|
||||
#Oracle.Url=jdbc:oracle:thin:@218.232.234.162:1521:ORAGEO
|
||||
Oracle.ID=geoinfo
|
||||
Oracle.Password=geoinfo
|
||||
# thkim local test
|
||||
#Oracle.Password=dbnt060928!rlaxogh
|
||||
#Oracle.Password=!!kictgis1234
|
||||
|
||||
|
||||
###############################################
|
||||
################### \ud30c\uc77c\uad00\ub828 ###################
|
||||
################### 파일관련 ###################
|
||||
###############################################
|
||||
|
||||
#Geoinfo.FilePath=D:\\Tomcat6\\geoinfoEgov\\webapps\\geoinfo\\files\\
|
||||
Geoinfo.FilePath=D:\\app_geoinfo\\app\\files\\
|
||||
#\uac80\uc0c9\uc720\ud1b5 3\ucc28\uc6d0
|
||||
#검색유통 3차원
|
||||
#Geoinfo.FilePath3D=files\\4dim\\2014\\
|
||||
Geoinfo.FilePath3D=D:\\app_geoinfo\\app\\files\\4dim\\2014\\
|
||||
#\uc804\ubb38\uac00\uc758\uacac
|
||||
#전문가의견
|
||||
Geoinfo.Report=files\\report\\
|
||||
|
||||
#\uc785\ub825\uc2dc\uc2a4\ud15c
|
||||
#입력시스템
|
||||
Geoinfo.WebFilePath=files\\web\\
|
||||
|
||||
Globals.FileExtImg=.jpeg,.jpg,.bmp,.tiff,.gif,.png
|
||||
|
|
@ -53,4 +36,6 @@ Globals.FileExtZip=.hwp,.pdf,.zip,.xls,.xlsx,.ppt,.pptx
|
|||
###############################################
|
||||
JWT.secret_key=RnrxhWlQksportalSystem!@!@$#@!@#@!$12442321
|
||||
# The token expires in 1,800,000 milliseconds, which is equal to 30 minutes.
|
||||
JWT.access_expired=1800000
|
||||
JWT.access_expired=1800000
|
||||
|
||||
O2MAP.wms.url=http://127.0.0.1:2936/o2map/services/wms
|
||||
|
|
@ -4,18 +4,14 @@
|
|||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
|
||||
|
||||
<!-- component-scan 설정 -->
|
||||
<context:component-scan base-package="geoinfo">
|
||||
<context:component-scan base-package="com">
|
||||
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service" />
|
||||
<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository" />
|
||||
<context:include-filter type="annotation" expression="org.springframework.stereotype.Component" />
|
||||
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
|
||||
</context:component-scan>
|
||||
|
||||
<!-- 메시지소스빈 설정 -->
|
||||
<bean id="egovMessageSource" class="egovframework.com.cmm.EgovMessageSource">
|
||||
<property name="reloadableResourceBundleMessageSource">
|
||||
<ref bean="messageSource" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
||||
<!-- 프로퍼티 파일 위치 설정 -->
|
||||
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
|
||||
|
|
@ -31,45 +27,6 @@
|
|||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Exception 발생시 후처리용 별도작업을 위해 실행환경의 LeveaTrace를 활용하도록 설정 -->
|
||||
<bean id="leaveaTrace" class="egovframework.rte.fdl.cmmn.trace.LeaveaTrace">
|
||||
<property name="traceHandlerServices">
|
||||
<list>
|
||||
<ref bean="traceHandlerService" />
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
<!-- Exception 발생시 후처리용 별도작업을 위해 실행환경의 DefaultTrace Handle Manager 를 활용하도록 설정 -->
|
||||
<bean id="traceHandlerService" class="egovframework.rte.fdl.cmmn.trace.manager.DefaultTraceHandleManager">
|
||||
<property name="reqExpMatcher">
|
||||
<ref bean="antPathMater" />
|
||||
</property>
|
||||
<property name="patterns">
|
||||
<list>
|
||||
<value>*</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="handlers">
|
||||
<list>
|
||||
<ref bean="defaultTraceHandler" />
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Exception 발생시 후처리용 별도작업을 위해 실행환경의 AntPathMatcher 를 활용하도록 설정 -->
|
||||
<bean id="antPathMater" class="org.springframework.util.AntPathMatcher" />
|
||||
<!-- Exception 발생시 후처리용 별도작업을 위해 실행환경의 DefaultTraceHandler 를 활용하도록 설정 egovframework.rte.fdl.cmmn.trace.handler.DefaultTraceHandler -->
|
||||
<bean id="defaultTraceHandler" class="egovframework.com.cmm.EgovComTraceHandler" />
|
||||
|
||||
<!-- For Pagination Tag 설정 -->
|
||||
<bean id="imageRenderer" class="egovframework.com.cmm.ImagePaginationRenderer" />
|
||||
<bean id="paginationManager" class="egovframework.rte.ptl.mvc.tags.ui.pagination.DefaultPaginationManager">
|
||||
<property name="rendererType">
|
||||
<map>
|
||||
<entry key="image" value-ref="imageRenderer" />
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- MULTIPART RESOLVERS -->
|
||||
<!-- regular spring resolver -->
|
||||
|
|
@ -77,17 +34,8 @@
|
|||
<property name="maxUploadSize" value="1073741824" />
|
||||
<property name="maxInMemorySize" value="1073741824" />
|
||||
</bean>
|
||||
|
||||
<!-- <bean id="spring.RegularCommonsMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
|
||||
<property name="maxUploadSize" value="1073741824" />
|
||||
<property name="maxInMemorySize" value="1073741824" />
|
||||
</bean> -->
|
||||
|
||||
<!-- custom multi file resolver -->
|
||||
<bean id="local.MultiCommonsMultipartResolver" class="egovframework.com.cmm.web.EgovMultipartResolver">
|
||||
<property name="maxUploadSize" value="1073741824" />
|
||||
<property name="maxInMemorySize" value="1073741824" />
|
||||
</bean>
|
||||
|
||||
<!-- choose one from above and alias it to the name Spring expects -->
|
||||
<!-- alias name="local.MultiCommonsMultipartResolver" alias="multipartResolver" / -->
|
||||
<alias name="spring.RegularCommonsMultipartResolver" alias="multipartResolver" />
|
||||
|
|
|
|||
|
|
@ -1,31 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
|
||||
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
|
||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
|
||||
|
||||
<!-- SqlSession setup for MyBatis Database Layer -->
|
||||
<!--
|
||||
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
|
||||
-->
|
||||
<bean id="sqlSession" class="geoinfo.com.database.HotDeployableMybatisSessionFactoryBean">
|
||||
<property name="dataSource" ref="dataSource" />
|
||||
<property name="configLocation" value="classpath:/egovframework/sqlmap/sql-map-config.xml" />
|
||||
<property name="mapperLocations" value="classpath:/egovframework/sqlmap/mapper/**/*.xml" />
|
||||
<property name="interval" value="500" /><!-- ms -->
|
||||
</bean>
|
||||
|
||||
<bean class="egovframework.rte.psl.dataaccess.mapper.MapperConfigurer">
|
||||
<property name="basePackage" value="geoinfo.**.**.service" />
|
||||
</bean>
|
||||
|
||||
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
|
||||
<constructor-arg index="0" ref="sqlSession" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
|
|
@ -2,32 +2,5 @@
|
|||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
|
||||
|
||||
<!-- 프로퍼티 정보 설정 -->
|
||||
<bean name="propertiesService" class="egovframework.rte.fdl.property.impl.EgovPropertyServiceImpl" destroy-method="destroy">
|
||||
<property name="properties">
|
||||
<map>
|
||||
<entry key="pageUnit" value="10" />
|
||||
<entry key="pageSize" value="10" />
|
||||
|
||||
<!-- 모바일 인증 정보 시작 -->
|
||||
<!-- 회원사ID -->
|
||||
<entry key="cert.cpId" value="KCTM1002"/>
|
||||
<!-- URL코드 - 개발용(006002), 운영용(003002) -->
|
||||
<entry key="cert.urlCode" value="006002"/>
|
||||
<!-- 인증후 호출 URL - 개발용(http://localhost/mobileCertResult.do), 운영용(https://www.geoinfo.or.kr/mobileCertResult.do)-->
|
||||
<entry key="cert.retUrl" value="http://localhost:8080/mobileCertResult.do"/>
|
||||
<!-- 모바일 인증 정보 끝 -->
|
||||
|
||||
</map>
|
||||
</property>
|
||||
|
||||
<property name="extFileName">
|
||||
<set>
|
||||
<map>
|
||||
<entry key="encoding" value="UTF-8"/>
|
||||
<entry key="filename" value="classpath*:/egovProps/*.properties"/>
|
||||
</map>
|
||||
</set>
|
||||
</property>
|
||||
</bean>
|
||||
</beans>
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
|
||||
|
||||
<bean id="subsidenceJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
|
||||
<property name="targetObject" ref="subsidenceScheduling" />
|
||||
<property name="targetMethod" value="subsidenceListScheduler" />
|
||||
<property name="concurrent" value="false" />
|
||||
</bean>
|
||||
|
||||
<!-- 매일 밤 12시마다 실행 -->
|
||||
<bean id="subsidenceTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
|
||||
<property name="jobDetail" ref="subsidenceJob" />
|
||||
<property name="cronExpression" value="0 0 0 * * ?" />
|
||||
</bean>
|
||||
|
||||
<bean id="subsidenceScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
|
||||
<property name="triggers">
|
||||
<list>
|
||||
<ref bean="subsidenceTrigger" />
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
</beans>
|
||||
|
|
@ -11,7 +11,7 @@ xmlns:oxm="http://www.springframework.org/schema/oxm" xmlns:util="http://www.spr
|
|||
|
||||
|
||||
|
||||
<context:component-scan base-package="geoinfo,com">
|
||||
<context:component-scan base-package="com">
|
||||
<context:include-filter type="annotation" expression="org.springframework.context.annotation.Configuration" />
|
||||
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service" />
|
||||
<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository" />
|
||||
|
|
@ -22,56 +22,8 @@ xmlns:oxm="http://www.springframework.org/schema/oxm" xmlns:util="http://www.spr
|
|||
|
||||
<!-- <mvc:default-servlet-handler /> -->
|
||||
|
||||
<mvc:interceptors>
|
||||
<mvc:interceptor>
|
||||
<mvc:mapping path="/*.do"/>
|
||||
|
||||
<!-- <mvc:mapping path="/**"/> -->
|
||||
<!-- <mvc:mapping path="/map/**" />
|
||||
<mvc:mapping path="/regi/**" />
|
||||
<mvc:exclude-mapping path="/com/**"/> -->
|
||||
<!-- <mvc:exclude-mapping path="/main/**"/>-->
|
||||
<bean id="adminInterceptor" class="geoinfo.com.interceptor.AdminInterceptor"></bean>
|
||||
</mvc:interceptor>
|
||||
|
||||
|
||||
<!-- <mvc:interceptor> -->
|
||||
<!-- <mvc:mapping path="/**" /> -->
|
||||
<!-- <bean id="loginInterceptor" class="com.ygt.gtyoon.interceptor.LoginInterceptor"></bean> -->
|
||||
<!-- </mvc:interceptor> -->
|
||||
</mvc:interceptors>
|
||||
|
||||
<mvc:interceptors>
|
||||
<mvc:interceptor>
|
||||
<mvc:mapping path="/webMember.do" />
|
||||
<mvc:mapping path="/meta_info.do" />
|
||||
<mvc:mapping path="/index_db.do" />
|
||||
<mvc:mapping path="/headerDb.do" />
|
||||
<mvc:mapping path="/info/*.do" />
|
||||
<mvc:mapping path="/info/*" />
|
||||
<mvc:mapping path="/layer/*" />
|
||||
<mvc:mapping path="/basic/*" />
|
||||
<mvc:mapping path="/sandInfo/*" />
|
||||
<mvc:mapping path="/web/input/*" />
|
||||
<bean class="geoinfo.com.interceptor.UserLoginInterceptor" />
|
||||
</mvc:interceptor>
|
||||
|
||||
<!-- 권한제어 -->
|
||||
<mvc:interceptor>
|
||||
<mvc:mapping path="/web*.do" />
|
||||
<mvc:mapping path="/meta*.do" />
|
||||
<mvc:mapping path="/index_db.do" />
|
||||
<mvc:mapping path="/headerDb.do" />
|
||||
<mvc:mapping path="/info/*.do" />
|
||||
<mvc:mapping path="/info/*" />
|
||||
<mvc:mapping path="/layer/*" />
|
||||
<mvc:mapping path="/basic/*" />
|
||||
<mvc:mapping path="/sandInfo/*" />
|
||||
<bean class="geoinfo.com.interceptor.ClsCheckIntercepter" />
|
||||
</mvc:interceptor>
|
||||
</mvc:interceptors>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -83,13 +35,5 @@ xmlns:oxm="http://www.springframework.org/schema/oxm" xmlns:util="http://www.spr
|
|||
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1" p:viewClass="org.springframework.web.servlet.view.JstlView" p:prefix="/WEB-INF/views/" p:suffix=".jsp">
|
||||
</bean>
|
||||
|
||||
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
|
||||
<property name="definitions">
|
||||
<list>
|
||||
<value>/WEB-INF/tiles/tiles-layout.xml</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="preparerFactoryClass" value="org.springframework.web.servlet.view.tiles3.SpringBeanPreparerFactory" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
|
|
@ -62,14 +62,16 @@
|
|||
</init-param>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>action</servlet-name>
|
||||
<url-pattern>*.do</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet-mapping>
|
||||
<servlet-name>action</servlet-name>
|
||||
<url-pattern>*.doo</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>O2MapService</servlet-name>
|
||||
<servlet-class>com.geotwo.webserver.core.service.Service</servlet-class>
|
||||
</servlet>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>O2MapService</servlet-name>
|
||||
<url-pattern>/services/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet-mapping>
|
||||
<servlet-name>action</servlet-name>
|
||||
<url-pattern>*.json</url-pattern>
|
||||
|
|
|
|||
Loading…
Reference in New Issue